[SUG][PHYSICS] Refine Builder terrain checks

Started by WillLem, June 27, 2024, 11:19:26 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

WillLem

Proposal: relax Builder checks so that they only stop building if they have terrain immediately overhead, or at their foot position during the "step up".

So:


^^^Correct, current behaviour - the lem's head has hit terrain, so they stop building and turn (yes, the turn is debateable, but will be kept if the proposed change goes ahead)


^^^Much more arbitrary - why did the lem stop building here*?? Let's do away with the need to spam builders to complete the bridge!


^^^This is better! They should keep building until the existing terrain prevents them from stepping up, at which point they stop and turn as usual

*NOTE: code-wise, the stop-and-turn at this point is because the Builder needs to check for terrain in front of them as well as overhead. In this scenario, though, the check is returning a false positive of sorts; the check needs to be less complex, then.


ericderkovits

I also like the proposal as in Superlemmini(too) the builder will complete the bridge even though his head hits terrain.

In NL and SLX the builder hits his head and turns around before completing the bridge

example in the Genesis sunsoft 24 level "out, away from the tune" an extra basher is needed to solve the level.

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

In Superlemmini(Too) the builder will complete the bridge and won't turn around early, so no extra basher is needed

example same Genesis level

https://www.youtube.com/watch?v=9w4CtaNZ790


So in NL/SLX there is a builder check (aka belly check), but in Superlemmini(Too) there is no belly check. I think I remember also discussing this with Simon about Genesis' Lemmings Ark.




Simon

#3
Quote from: WillLem on June 27, 2024, 11:19:26 PM

^^^Much more arbitrary - why did the lem stop building here*??

I call this the belly check. This came early in NL. Prod namida for the full rationale.

I've never liked the belly check, either. I haven't argued much about it. Icho would defend it for content preservation: When you remove the belly check, you potentially open backroutes, and, nastily, this backroute potential affects practically every NL pack because NL gained the belly check so early. It wouldn't matter then that the backroute potential is weak per level.

I don't have a good argument against the belly check other than how nasty the belly check feels, and that feeling may well come from early conditioning from playing L1.

Quote from: ericderkovitsI remember also discussing this with Simon about Genesis' Lemmings Ark.

Right, the possible solutions to Lemmings Ark differ between NL physics and Genesis physics. The solutions differed enough that I decided to solve Lemmings Ark twice, once in NL, once in vanilla Lemmix.

Spoiler to Lemmings Ark
The NL builder doesn't finish the bridge into the miner tunnel that the Genesis builder will finish.

But the NL one-way arrows allow a turning/digger-cancelling assignment of basher (or miner?) to a digger. The Genesis physics forbid this. IIRC, this assignment is necessary in NL to conserve enough skills for later, when we have to work around the NL builder's limitation.

-- Simon

WillLem

Quote from: ericderkovits on June 28, 2024, 02:09:21 AM
in NL/SLX there is a builder check (aka belly check), but in Superlemmini(Too) there is no belly check

Quote from: Simon on June 28, 2024, 03:16:24 AM
I call this the belly check. This came early in NL

Yes, it's this mechanic that I'll look at removing. In Eric's example, the Builder should continue as in SLToo.

Quote from: Simon on June 28, 2024, 03:16:24 AM
When you remove the belly check, you potentially open backroutes, and, nastily, this backroute potential affects practically every NL pack because NL gained the belly check so early

Existing content preservation is a weak argument for keeping old mechanics on a new engine. With that said, whilst I was originally happy to ignore content preservation entirely (in early SLX development), I later upgraded this position to 'take each item as it comes and decide if it's worth the breakage' - ultimately, I want people to feel like they can port their existing content over, even if one or two things might need to be updated.

The proposed Builder check update is considerably more of a change than, say, allowing Shimmier-to-Climber assignment at any time, or even Direct Drop. But, it's probably more desirable as well; the cost:benefit ratio is higher on both sides.

Simon

#5
In that light, ditch the belly check.

Ditching the belly check is better, in at least 3 ways, than reintroducing direct drop.
  • It's way more popular.
  • It breaks fewer levels. Direct drop lures designers into offering backroutes.
  • It's not an outright bug in the first place, unlike exits accepting dying* lemmings.
*: At least splatters. I don't know DOS Lemmings 1 exiting behavior of drowners, or of burners, or of already-exploded lemmings. (These already-exploded lemmings are invisible and offset diagonally from their exploding position. They go away after the debris has finished raining. We know about their existence because the cursor opens over them. Their purpose seems to be to prevent the game from exiting to postview after losing all lemmings).

<SimonN> Mindless: In DOS Lemmings 1, exits accept splatters ("direct drop"). Do they accept drowners? Do they accept already-exploded lemmings (they're offset diagonally)?
<SimonN> I can test the exploded lemmings myself in L1. I don't have a test level for drowners.
<Mindless> Drowners and exploders do not exit.
<Mindless> *Technically* splatters do not exit either.  The faller becomes a splatter and then becomes an exiter in the same frame.  Once it has started splatting, it would not exit if the exit suddenly came into existence behind it.


-- Simon

WillLem

Quote from: Simon on June 28, 2024, 06:41:03 PM
In that light, ditch the belly check.

On it. That's this evening's job :)

Quote from: Simon on June 28, 2024, 06:41:03 PM
It's not an outright bug in the first place, unlike exits accepting dying* lemmings

Even though Amiga doesn't have DD and DOS does (and I'm generally more of an Amiga purist than a DOS purist), I still think DD should be a legit mechanic. If the lemming makes contact with the Exit's trigger and they're still visible, they should exit. Lemmings that fall onto traps from a height are still affected by the trap (confirmed in Amiga, at least), so why not exits?

Furthermore, the "backroutes" that DD introduces wouldn't be backroutes if DD were an accepted, intended mechanic. So, in SLX, it's an accepted, intended mechanic - not a bug! ;P

Anyway, I could debate DD all evening, let's concentrate on these Builder mechanics instead...

namida

QuoteFurthermore, the "backroutes" that DD introduces wouldn't be backroutes if DD were an accepted, intended mechanic. So, in SLX, it's an accepted, intended mechanic - not a bug! ;P

A solution being a backroute is based on whether the author intends (or at least accepts) the solution; not whether the mechanics it uses are intended by the engine. ;)
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

#8
Quote from: namida on June 28, 2024, 11:54:11 PM
A solution being a backroute is based on whether the author intends (or at least accepts) the solution; not whether the mechanics it uses are intended by the engine. ;)

Fair point! :P

Meanwhile...



So, Builders now only check at their foot and head position for obstructive terrain; the belly checks are gone.

(And, that Genesis level is fixed!):





The above has been implemented in commit eddbeb9f6.