Should air-bashing at steel turn climbers? [DISCUSSION]

Started by Nepster, July 01, 2016, 05:33:08 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Nepster

With special-casing for the first two strokes, we could probably use the following rules to continue bashing:
3a) There is removable terrain withing the next 14 pixels (and at the correct height)
3b) There is steel within the next (14-5*n) pixels (and at the correct height), where n is the number of previous basher stokes that haven't removed any terrain.
3c) There is steel within the next (19-5*n) pixels (and at the correct height), where n is the number of previous basher stokes that haven't removed any terrain, and where the basher has made at most 3 strokes.

There are still some problems with this:
- In situation i) above, one can manage about four basher strokes before removing terrain for the first time.
- I can still cook up situations where terrain behind a steel wall determines whether a basher turns or not. Most notably this occurs when putting a steel wall (with possibly some usual terrain behind it) after a steel slops (like in möbius' example).
Moreover I am very worried that such complex rules like the above might introduce new glitches, that only occur in very specific situations and on very specific basher strokes.

Unless someone has a brilliant new idea, I therefore tend to choosing some basher mechanics that fulfil only two of the following three conditions:
C1) Bashers turn at steel only when standing directly in front of it, cf. http://www.lemmingsforums.net/index.php?topic=2579.0
C2) Steel-bashing to turn climbers is possible and it does not depend on the exitance of normal terrain behind the steel wall, cf. first post in this thread.
C3) On steel slopes, bashers do not continue bashing, cf. the example level that möbius posted in this thread.

Presonally, I am in favor of keeping the current V1.47 behavior and accepting that C3) is not satisfied. Reason:
- Not-C1) does have too many weird consequences and whether a basher turns depends strongly on the pixel they started bashing.
- "Terrain behind steel"-influences are less discoverable by players than the C3)-behavior. In other words: Players can probably guess what conditions need to be satisfied for Not-C3) to happen, once they see it. Guessing in what setups the "terrain behind steel"-influence comes up (without already knowing the cause) is far harder. 
Therefore I deem ignoring C3) the most user-friendly option.
Note that the Lix-basher satisfied C2) and C3), but not C1).

IchoTolot

Quote from: Nepster on September 03, 2016, 02:28:16 PM
With special-casing for the first two strokes, we could probably use the following rules to continue bashing:
3a) There is removable terrain withing the next 14 pixels (and at the correct height)
3b) There is steel within the next (14-5*n) pixels (and at the correct height), where n is the number of previous basher stokes that haven't removed any terrain.
3c) There is steel within the next (19-5*n) pixels (and at the correct height), where n is the number of previous basher stokes that haven't removed any terrain, and where the basher has made at most 3 strokes.

There are still some problems with this:
- In situation i) above, one can manage about four basher strokes before removing terrain for the first time.
- I can still cook up situations where terrain behind a steel wall determines whether a basher turns or not. Most notably this occurs when putting a steel wall (with possibly some usual terrain behind it) after a steel slops (like in möbius' example).
Moreover I am very worried that such complex rules like the above might introduce new glitches, that only occur in very specific situations and on very specific basher strokes.

Unless someone has a brilliant new idea, I therefore tend to choosing some basher mechanics that fulfil only two of the following three conditions:
C1) Bashers turn at steel only when standing directly in front of it, cf. http://www.lemmingsforums.net/index.php?topic=2579.0
C2) Steel-bashing to turn climbers is possible and it does not depend on the exitance of normal terrain behind the steel wall, cf. first post in this thread.
C3) On steel slopes, bashers do not continue bashing, cf. the example level that möbius posted in this thread.

Presonally, I am in favor of keeping the current V1.47 behavior and accepting that C3) is not satisfied. Reason:
- Not-C1) does have too many weird consequences and whether a basher turns depends strongly on the pixel they started bashing.
- "Terrain behind steel"-influences are less discoverable by players than the C3)-behavior. In other words: Players can probably guess what conditions need to be satisfied for Not-C3) to happen, once they see it. Guessing in what setups the "terrain behind steel"-influence comes up (without already knowing the cause) is far harder. 
Therefore I deem ignoring C3) the most user-friendly option.
Note that the Lix-basher satisfied C2) and C3), but not C1).


Yes maybe simply discouraging the usage of such behaviors is enough.

This is a pretty tough situation and C1 is the most important one to keep. I would be fine keeping the current V1.47 behavior for the sake of not overcomplicating the rules.

There will be always some slightly weird mechanics and if you try to fix one with new rules you may end up creating new weird stuff or breaking old rules which other content depends on. You just can try to keep them at a minimum.

Nepster

#17
I am hopeful, that I have now found a good bashing rule:
4) A basher may continue his work, if either
4a) there is removable terrain within the next 14 pixels (and at the correct height), or
4b) he would turn around at steel when simulating two more strokes (i.e. 32 frames).
5) The player may always assign the basher skill to a lemming (standing on terrain, not being a blocker, ...), even when being close to a steel wall.

More precisely we would simulate the lemming movement using the following rules:
- All objects are ignored, including traps, exits, ...
- Blockers are ignored as well, so we would not continue bashing simply because the lemming would turn at a blocker soon.
- All other lemmings are not simulated and will therefore not add or remove any terrain pixels.
- The basher will not stop bashing due to missing terrain in front of him, i.e. the above rules do not apply during the simulation.
So during the simulation the basher may only stop, if he hits steel (therefore triggering rule 4b)), drops too far down or leaves the level boundaries.

EDIT: Added rule change concerning basher assignments.

namida

That sounds good to me. I was actually going to suggest something like this the other day, but couldn't come up with a good way to word it.

By the way - at least in the latest comitted code, it would appear you still can't assign a basher too close to steel (but closer than you could before - I think now you have to be about 4 pixels away, compared to having to be about double that before?). I remember the discussion at one point was leaning towards allowing the assignment in all cases; is this current behaviour intended?
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)

Nepster

Quote from: namida on September 06, 2016, 06:37:23 PM
By the way - at least in the latest comitted code, it would appear you still can't assign a basher too close to steel (but closer than you could before - I think now you have to be about 4 pixels away, compared to having to be about double that before?). I remember the discussion at one point was leaning towards allowing the assignment in all cases; is this current behaviour intended?
Originally there were reasons not to assign bashers too close to steel walls. But already with the change to turn at steel only when standing directly in front of it, they do no longer hold. So unless someone can come up with a compelling reason to keep this behavior, I already planned to remove this now, cf. reply #11 and #13. I just forgot to add it in my latest post and will add it in a moment...  :-[