[Discussion] No-Effect Objects must be either No Overwrite or Only on Terrain

Started by Dullstar, June 11, 2020, 11:07:13 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Dullstar

The topic title can probably be improved.

No-Effect objects do not interact with the No Overwrite checkbox in the same manner as other objects.

Suppose I were decorating a level using a water object. The water object is, by default, no overwrite, so it only appears behind other objects. But, if I want to draw it in front of an object, I simply have to disable the No Overwrite checkbox. However, No-Effect Objects do not respect this checkbox; they can be drawn where there is no terrain, or you can turn on Only On Terrain to draw the object on top of terrain, but you can't have a single No-Effect Object that is drawn in front of terrain the same way you can with a water object. I imagine this was most likely done to prevent troll levels from being made, but in this case it 1) interferes with non-troll decoration and 2) doesn't actually even help because a workaround exists: you are allowed to perfectly overlap a No Overwrite No-Effect Object on top of an Only On Terrain No-Effect Object, which will look and function exactly as it would if No-Effect Objects respected disabling the No Overwrite textbox.




Suggested discussion questions:
Should this restriction be kept? If so, should the workaround be removed (this would likely require a reworking of Only on Terrain to be tied to object types instead of object instances)?

Suggested changes:
Considering that users who want to make troll levels can still do so by making a custom style, I'm not sure I think removing legitimate decorative features that can potentially be abused to make troll levels is the way to go about it - after all, such users can be punished simply by leaving bad reviews on their packs :evil:. However, contrast this with Fake or Invisible Objects: these features are really only usable for troll levels, so culling them was a wise decision. For that reason, I'd suggest making No-Effect Objects respect the No Overwrite checkbox being off (for compatibility, the checkbox should probably be applied to non-Only On Terrain No-Effect Objects when loading levels predating this change, if implemented).

That said, I do think it's important that whatever choice is made here is done consistently. Thus, if we decide the existing restriction to require No Overwrite for No-Effect Objects should be kept, the checkbox in the editor should be grayed out to match, and the workaround should be patched by reworking Only On Terrain to not allow it to be applied to specific instances of arbitrary objects.

namida

No-overwrite is respected for no-effect objects. It's not respected for moving background objects; I'm surprised only-on-terrain is respected for these.

The lack of proper support for moving background objects in the editor - specifically, the "moving" part - has also lead to a situation where a large number of no-effect objects have been reclassified as moving background objects, presumably to force the no-overwrite? I'm not entirely sure off-hand what the reasoning was behind this - either it wasn't my doing, or I don't recall the discussions around it.

However, in general, I'm heavily leaning towards that only-on-terrain as a feature for any random object should be scrapped, in favor of instead having a dedicated object type to decorate terrain with in that fashion (that has no gameplay effect).
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)

ccexplore

From the Quick Guide to Using NeoLemmix Features in the Editor posted by namida circa 2015:

Quote from: namida on April 25, 2015, 01:25:35 PMMoving Background

A moving background object is exactly what it says on the tin - a background animation that moves. It will wrap around the level if it reaches the edge. The editor doesn't always correctly draw them behind other objects / terrain, but the game itself always will, regardless of index order or no overwrite settings (however, these settings do still affect how moving background objects are drawn in relation to other moving background objects).

The S Value and L Value are used to set the direction and speed of movement respectively. An S value of 0 represents straight upwards, with each increase of one corresponding to a 22.5 degree (clockwise) increment - so 4 is to the right, 6 is to the bottom-right, etc. The L value is how many pixels it should move per game-time second (which is equal to 17 frames). There is also a quick select panel for these.

Do note that non-multiple-of-45 degree angles (ie: those with odd S values) tend to act like the closest non-diagonal line if the speeds are very slow. Also, do note that the formulas are not always 100% reliable due to rounding, so you may need some trial-and-error if for some reason you want a moving background object's position to be overly precise.

The only default graphic set that contains these is the Space graphic set from Lemmings Plus IV. Some custom graphic sets (such as the Honeycomb set from Lemmings Plus V) also contain these.

It seems like always forcing no overwrite wrt terrain is by design, since these kinds of objects are meant to be part of the background in essence.  So the real question/mystery is, like namida said, why so many no-effect objects were reclassified?  It also sounds like respecting only-on-terrain was unintentional for this kind of object.

ccexplore

With a simple application of forum search, below thread seems to have the most context on why many decorative objects were changed to moving backgrounds.

https://www.lemmingsforums.net/index.php?topic=3540

In essence, you have Simon and Nepster to blame for this. :P

Dullstar

As a reference, this is what I was trying to do (this uses the workaround I described in the OP):


(this level isn't quite finished and is not available to play at this time)

Based on what namida has said it sounds like these clouds are moving backgrounds for... some reason.

If I were to make a custom no-effect cloud object, could I count on it remaining possible to draw them on top of terrain by turning off No Overwrite? I mainly just want the clouds there at the bottom of the level to make it look like it's very high up without adding a bunch of superfluous decorative vertical scrolling terrain, but if I only draw them behind the pit the effect doesn't quite look right to me. I was thinking of creating some custom cloud graphics for this level anyway since most of the ones I could find that aren't terrain certainly look like they could be terrain.

ccexplore

Actually, those clouds could very well had been designed as moving background on the outset.  If you're not specifically using the clouds to depict a high-elevation scene like you are doing, it'd make sense generally to have them slowly drifting left-to-right or right-to-left in the background, but always displayed behind everything else, to achieve a more interesting-looking sky background.  The way you used them probably wasn't anticipated by the ones that created those clouds.

I would strongly encourage the clouds be animated though, even if only subtly, so that there's little confusion that they may be terrain.  I'm way less hardcore than Simon about all this, but I totally sympathize with his original rage essentially against the Lemmings 2 background graphics--you don't know which is which without testing and learning, and on some tribes like Shadow it's especially bad in that way since they are used so much even in the main areas of the level where your lemmings will be moving about, and have almost same graphical styles as the real terrain.

Dullstar

Edit Simon: I split off mantha16's question: What is no-overwrite?




The clouds definitely weren't intended to depict a high-elevation scene, but I doubt they were intended to move either, as they came from Lemmings 2 (specifically, Beach).