[P-BUG][PLAYER] Platformer-teleporter inconsistency re: if other lemmings follow

Started by namida, December 12, 2021, 07:24:36 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

namida

If a builder goes through a teleporter, other lemmings are always unable to follow him, and will fall when they go through the teleporter. A platformer on the other hand, it depends on the exact distance between his start point and the teleporter's trigger area. I believe the "cannot follow" situation arises if the platformer encounters the trigger area in the middle of the forward motion between bricks.

(This also happens for portals in the new objects experimental build.)

Some discussion is needed about (a) what outcome should occur, and (b) how it should be made to occur. The rules of thumb here are (a) same skill must ALWAYS have the same result (ie: Platformer needs to either always have lemmings follow, or always have lemmings fall, rather than being "could go either way"), and (b) if Builder and Platformer have different results from each other, there must be a good reason.
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

I think I would rather stay with the status quo than introducing more weird extra rules.

Builders and platformers are similar but not the same. Most important they have a different lemming cycle and a different direction.

I think this is a case where different bricks with different lemming movements just lead to different results. So, I would let a builder/platformer difference slide as they are similar but not identical skills.

The builder I would say is not the problem here and can stay. The platformer is the main issue here.

-----------------------------------------------------------------------------------------------------------------------------------------------

The platformer inconsistency seems to come from the dependency where in his cycle the lemming gets teleported.

To go forward, I would not change the basic platformer cycle just for this.

This sadly screams extra rule for platformer+teleporter. As the cycle should not be changed.

OR: We just accept that this depends on the cycle of the lemming.

There are already a lot of other things depending on the cycle. Here some examples:

- Builder into miner
- Platformer cancelling platformer
- Basher leaving a pixel of terrain at the end.
- Miner cancelling.

It would not be that weird to be honest.

So @namida should the "(a) same skill must ALWAYS have the same result" rule stay or is this indeed another moment where it is simply cycle dependend?

I think I would rather accept this instead of making weird extra rules.

All in all, I would let things stay as they are:

- Builder goes through a teleporter, other lemmings are always unable to follow.
- Platformer goes through a teleporter, other lemmings are sometimes unable to follow. --> Cycle dependent

Proxima

I think the biggest reason for not allowing it to be cycle-dependent is that then you have both behaviours, the crowd can follow or they fall, and a new player encounters one behaviour, learns that, then gets confused when a level relies on the other behaviour. It's not intuitive at all to think that it might be cycle-dependent (unlike the builder-into-miner case where it is easily visible that sometimes the builder can place a full brick just touching the wall and sometimes he can't), so the player has no reason to guess that it might be.

If we change the platformer to have a single behaviour, the next question is what it should be. Normally, with no teleporter, a platform stays at a single height and the crowd can always walk across it; so the crowd being able to follow is definitely the expected result, and consistent with the idea that teleporters transplant the skill to a new place without changing its properties.

The only reason against doing this is that it creates an inconsistency with builders, unless we change the behaviour for both of them. And since this is a niche behaviour that very few levels rely on; and it is unexpected, counterintuitive and feels like a bug; I think that changing it for both builders and platformers would be the best decision.

(Obligatory grump about how making teleporters revert lemmings to walkers would be even better, but I agree that would break too much existing content to be considered at this stage.)

IchoTolot

If indeed everything needs to be the same, I would side with Proxima here and say that in both the builder and platformer case the crowd should be able to follow. :)

WillLem

Both should be "always able to follow", anything else seems like a bug.

Although I can see ways in which "neither is ever able to follow" could be interesting for level design, it's not what I personally expected and I'd prefer to side with my gut feeling on this one.




In response to namida from the (now closed) bug topic:

Quote from: namida
In order to make a change here, I would need to see either (a) a good reason to change the established behavior of the teleporter in this situation

I was actually unaware that the teleporter also exhibits this behaviour (I originally reported this as a portal bug), but I would almost certainly have reported this as a bug for the teleporter as well, had I previously discovered it. I would fully expect lems to be able to walk onto a builder bridge continuing on the other side of the teleporter...

Quote from: namida
the builder / platformer places a brick in front of himself (not directly under himself), and ... this is the expected outcome when applying consistent physics rules

Well... sure, but I didn't previously know that this was the case and so this seems to be one of those "player needs to learn about the exact physics in order to understand why it's happening" things. It's difficult to comment further on this without knowing what most other players would expect, but my current view is that intuition ought to trump physics either way; if it turns out that most people intuitively expect the "not follow" behaviour, and my own expectations are anomalous, then I would stand by that instead on the same basis.

IchoTolot

I just had a thought about how the "always be able to follow" rule can be implemented if we decide for it.

I thought of three different changes that could allow this:

1.) The builder/platformer spawns slightly off center out of the receiver, so the next brick can catch the crowd.

- I would strongly advice aganst this. This creates different positional outcomes of teleportation for different lemmings and every lem should arrive at the same position. I can also imagine levels will use this to create special "builder only" teleporters.

2.) Teleport the last brick (or parts of it) with the lem. Only if said brick would be on empty space of course.

- This last brick should be able catch allow any following crowd. Extra terrain gets teleported (or created) though. Still, this could be the best solution at least for the builder case.

3.) This should only work for the platformer though: Change the cycle of the platformer back to the last position where crowd following is possible. (Or forward to the next possible crowd-following cycle frame)

- No terrain gets teleported and no extra location change for the teleported lemming here. Still his attributes are slightly changed by a few frames in the worst case scenario.


WillLem

Quote from: IchoTolot on December 14, 2021, 08:29:45 AM
Teleport the last brick (or parts of it) with the lem. Only if said brick would be on empty space of course.

+1 for this, it seems by far the simplest & most elegant solution of the three Icho suggested. It makes sense to teleport the Builder with their most-recently-placed brick anyway, otherwise - why don't they fall?

It could be thought of as similar to the way in which people teleporting in science fiction can usually also teleport with whoever/whatever they happen to be touching at the time of teleportation (Freddy's hat from Nightmare I springs to mind, and there are also examples of this in Jumper); the last-placed-brick could perhaps fit this theory.

Dullstar

It is well established that skills should continue when emerging from a teleporter. A builder/platformer creating a bridge on both sides of the teleport that functions is a logical extension of this and definitely the behavior I would have expected.

While I understand the existing content argument, as usual I ask if there are actually substantial amounts of existing content that would be affected by such a change. Let's not get too https://xkcd.com/1172/ with this.

IchoTolot

QuoteWhile I understand the existing content argument, as usual I ask if there are actually substantial amounts of existing content that would be affected by such a change. Let's not get too https://xkcd.com/1172/ with this.

The argument did not come up so far, but as you mention it, I do not know of any case where "the crowd is not able to follow a builder/platformer through a teleporter" is used in a level.

I still recommend testing, but on that front most things should be fine.

The main discussion here is only about the outcome.



The main argument for me to keep the current state is that I want to avoid very weird special fixes for this very specific case.

I am totally fine with the crowd should always be able to follow as otherwise it is a very clean rule and when this can be done easily it would also be my preferred way.

That's why I thought of possible ways to fix this in my last post and I tend to agree with WillLem here that teleporting the latest brick (if it is located on open space after that) could be the cleanest way without making it too weird or changing the entire teleportation process. :)

Simon

There is precedence for duplicating the brick after teleporting in that the blocker-turned builder also replicates the brick to let the crowd follow.

For the portal, you can even consider to warp all terrain changes/blocker fields/... even when the lemming itself hasn't warped yet. Depends on how true a spacewarp you want the portal to become.

-- Simon

namida

After further consideration, to me it feels like the simplest change here is "if a lemming enters a portal/teleporter after placing a brick but before moving, he will not move during Builder / Platformer updates until his next brick has been placed".

This allows lemmings to follow the Platformer. It doesn't for the Builder, though it does still improve consistency of where the Builder bricks following a teleport/portal will be placed relative to the receiver's pin position. I am okay with this discrepancy due to comparing it with what already happens if you remove terrain under an active Builder / Platformer's feet - the former will not create a solid pixel at his current foot position, while the latter will.
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

This would make the platformer behave consistently, but leave the builder still at "alays not able to follow" if I understand it correctly.

I would still like to check/see it in the RC version if the time comes, but the explanation in the second paragraph makes sense to me at first glance.


Proxima

Better than the status quo, but much worse than fixing both skills. I don't know the internal workings of the skills nearly as well as you, of course, but I'm not sure why Simon's suggestion of duplicating the brick won't do -- it seems like the best solution to the problem.

If only one of the two skills is fixed, then we still have the issue of an inconsistent behaviour, which is likely to trip players up when they make a false extrapolation from the behaviour they have observed, and so end up being unable to solve levels relying on the other behaviour. This isn't something a player would see often and get used to -- look at how long it took for the issue to come to light in the first place!

WillLem

Quote from: Proxima on December 30, 2021, 04:44:44 PM
Better than the status quo, but much worse than fixing both skills. I don't know the internal workings of the skills nearly as well as you, of course, but I'm not sure why Simon's suggestion of duplicating the brick won't do -- it seems like the best solution to the problem.

+1 for this. Not fixing the Builder as well just makes the object feel very buggy, hence why it was reported as a bug in the first place.

Your call, obviously (@namida). But it's worth taking into account that most players won't care whether it makes sense from a deep-physics point of view; they'll expect that a lem should be able to follow an active Builder through both Teleporter and Portal, and then be surprised when it doesn't happen.

It will probably end up making more difference for Portals than Teleporters, since they're more likely to be used in mid-air. I guess designers could get around it by placing a solid pixel underneath the Portal's receiver, but... do we really want that to have to be a workaround?




I'd like to place my bet now that this thing contributes to the Portal being dropped as an object. You heard it here first, folks 8-)

namida

QuoteI'd like to place my bet now that this thing contributes to the Portal being dropped as an object. You heard it here first, folks 8-)

If we can accept it with the teleporter (and we must accept some outcome or another here, as the teleporter is not going to be culled), it's not a problem for the portal either.

Regarding the teleporting the last brick thing, it's an option - but what happens if part of the last brick, perhaps including the part actually at the receive point, was already solid terrain rather than being affected by the brick - should this be accounted for, and the brick not warped accordingly? Or, what if the lemming is placing their first brick - should an extra brick that didn't previously exist be created below them, or should we accept this as being an edge case where the others can't follow?
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

Quote from: namida on December 30, 2021, 10:11:47 PM
what happens if part of the last brick, perhaps including the part actually at the receive point, was already solid terrain rather than being affected by the brick - should this be accounted for, and the brick not warped accordingly?

I'm not sure what you mean here, tbh (maybe that's why I'm not quite understanding the physics issues :forehead:). Can you give an example/picture please? I'd like to try and understand this one from both sides (no pun intended) ;P

Quote from: namida on December 30, 2021, 10:11:47 PM
what if the lemming is placing their first brick - should an extra brick that didn't previously exist be created below them, or should we accept this as being an edge case where the others can't follow?

From what I imagine, no extra bricks need to be created at all. The "brick being teleported" thing assumes that the brick has been placed, exists, and the Builder lem is standing upon it. The brick is then transported (or rather, cloned) along with the lem to allow others to walk out onto it.

I get that there may be important reasons why this can't or shouldn't happen, but the scenario created by a non-fix (i.e. no follow) is potentially more confusing and messy that just accepting the special case and fixing it.

namida

Commit e33cf51 has implemented a partial carry-over behavior; specifically, only pixels in line with / in front of the lemming are carried over for the builder, and only the pixel immediately under the lemming is carried over for the platformer. I think this achieves a good end result, but you can test it when I release the next new-objects experimental (as it will include this patch).
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

Has anyone checked out this behavior in the new-objects experimentals? Thoughts?
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

Quote from: namida on January 22, 2023, 12:06:45 AM
Has anyone checked out this behavior in the new-objects experimentals? Thoughts?

Totally missed this. Still need to check. Will comment when I am done.

IchoTolot


WillLem

Quote from: namida on January 22, 2023, 12:06:45 AM
Has anyone checked out this behavior in the new-objects experimentals? Thoughts?

I made this quick test level today. From what I can see, the portals all behave exactly as you'd expect; if a lem follows a Builder or Platformer through the teleporter, they are able to walk across the bridge pieces set by the worker. Conversely, if a lemming falls into a teleporter to the incompleted side of the bridge piece, they continue to fall when they come out the other side.

I've created some replays which demonstrate this.

I would say you've nailed it tbh :thumbsup:

namida

Okay, so, I'd say we can close this one at this point - looks like all is well. (Of course, if any bugs are found later, report them!)
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)