Bomber symmetry bug

Started by namida, April 04, 2015, 12:22:28 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Which solution? (Please read post first!)

Option A - One pixel offset
4 (100%)
Option B - Modify bomber mask
0 (0%)

Total Members Voted: 4

namida

So, I've discovered a bug in NeoLemmix while playing through GigaLems. The easiest way to see this bug is to create a level in the martian style with a piece of the red railing sticking up, and try bombing from right next to it on both sides. On the right, they'll bomb right through, while on the left, one pixel will be left.

There are two possible approaches to dealing with this.

Option A) Moving the bomber mask by one pixel depending on the lemming's facing direction (in this case, it would be moved one pixel right if the lemming is facing right)
The advantage of this option is that it should break far less solutions than the other option, and will also be easier to implement. The disadvantage is that this is still somewhat asymmetrical, albeit with more consistent logic to it.

Option B) Adjust the bomber mask, making it one pixel thicker on the right (or one pixel thinner on the left).
The advantage of this option is that it gives symmetrical results in all cases. However, it's more likely to break levels, too, and implementing it will be trickier, particularly in the case of making the mask thicker (as this will likely require some modifications to MAIN.DAT's format, thus requiring all MAIN.DAT files to be rebuilt). Of the two sub-options, making it one pixel thicker on the right is less likely to break levels than making it thinner on the left.


I'm not entirely sure which option is best, so let's hear what people think. And please don't suggest "make it an option"; that isn't going to happen as I definitely don't want an optional mechanics switch over something that subtle.
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)

Simon

What's the behavior on DOS L1? I assume it's the same as what you experience at the moment.

Why should the asymetry be bug? Builder etc. all are asymertic in DOS L1. Have you fixed such asymmetries in the past during Lemmix -> Neolemmix development?

-- Simon

namida

They've all been fixed, as far as I'm aware (ie: unless some have slipped under the radar).

I'd believe the DOS behaviour would be the same. The bomber mask itself is asymmetrical there, but the shape of the mask itself has been fixed in NeoLemmix for a long time. However, as it's of an even width, it can't perfectly center on the lemming's position, and that's what's causing this issue.

EDIT: Yes, DOS behaviour in terms of positioning is exactly the same as NeoLemmix is currently. Tested with a similar setup in the pillar graphic set; block bombed on either side of a vertical wood piece. On the right it bombed right through, on the left a one-pixel wall remained.
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)

Simon

#3
So it was asymmetric in DOS L1, and you wish to fix asymmetries.

Come online in IRC as soon as possible, want to have a detailed discussion. :-) Result of discussion:

<Akseli> I like how word "asymmetry" has been typed in three different styles
<SimonN> well, at least the spelling is very asymmetrical now, this gives everything a nice touch


<namida42> okay, i looked closer at it from a graphical point of view thinking of the lemming as 2 pixels
<namida42> and in this case, the logical option would indeed be to move the mask one pixel right if the lemming is facing right
<namida42> i also noticed a few other minor anamolies based on treating the lemming as one pixel, most of htem purely-graphical but one that wasn't being the blocker area


-- Simon

namida

Between that seeming more logical, and the poll results, I think it's clear what option to go with.

Please note that as of the next revision, due to these symmetry fixes, any levels involving bombers should probably be re-tested. Additionally, there was also a slight symmetry fix relating to blocker areas, so levels that rely on blockers very precisely should probably also be re-tested.
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)