[FEAT] Modified Water Objects

Started by WillLem, February 10, 2023, 02:51:23 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

WillLem

An idea I had this morning whilst thinking about the current level contest Rule 2: since we now have the swimmer skill and mixable styles, should there be types of water that a swimmer either can't swim in, or that they interact with differently?

Lava and poison spring to mind. In the simplest form of this idea, these could trigger the "burner" animation and simply be re-styled as fire objects without making any engine changes. The ones I'm thinking of are orig_fire, orig_marble and onno_rock for this particular change; swimmers would no longer be able to traverse these particular water objects (since they'd just become fire objects instead). Regular water such as that found in orig_dirt/pillar would be needed to allow swimmer traversal, whilst, e.g. lava would be fatal.

Or, as a more extensive tweak, perhaps poison water could turn a swimmer lemming into a zombie (or a neutral): orig_marble, ohno_rock and ohno_bubble seem suitable for this. A non-swimmer lem would drown, as normal.

Taking this sort of thing even further, the ohno_snow water object could be a new "ice" object which turn swimmer lems into a block of ice which could then be walked over by other lems. This is going into "brand new code" territory though, I'm just allowing myself to spin ideas at this point. The other stuff above could already be made to happen if people were up for the idea of giving the original styles a bit of a tweak.

Of course, for the purposes of the original levels, there would be no difference since the swimmer skill isn't available; any type of water object would simply be fatal to lems in these levels.




Where I'm up to with this:

:tal-gold: Renamed the water object in fire to "lava" the one in marble to "poison", and given both of these the "fire" effect so that they burn lemmings (and therefore cannot be traversed by a swimmer). These have also both been replaced with the regular water object from the default style (not essential, since styles can be mixed, but makes it a bit more convenient when creating levels in these styles).

Other than this, the idea is still in discussion and the possibilities are being explored.

namida

#1
How would you explain a swimmer turning into ice but a non-swimmer not doing so, though?
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

#2
Quote from: Silken Healer on February 10, 2023, 05:50:30 PM
I've thought about it, and I've come round to your "level breakage will have to be accepted" philosophy a bit more.

That's good. It opens the engine up to new ideas, and gives it more of a reason to exist. I'm also counting my own levels in this btw; many of my recent ones will not be compatible if I end up extending the laserer's distance cap, which is something I definitely want to look at doing.

Quote from: Silken Healer on February 10, 2023, 05:50:30 PM
as for the water, I'd say that it's technically just water with a skin on but it's up to you

I know what you mean, but it's actually the other way around: I'm suggesting that the orig_fire objects be assigned the effect of being 'fire' rather than 'water', and that orig_marble, ohno_rock and (possibly) ohno_bubble be assigned the 'zombifier' or 'neutraliser' effect, so that any lemming entering these becomes a neutral or a zombie.

The fire one would be easy to do, since it's just a case of re-typing the object. "Poison water" turning swimmers into zombies/neutrals (probably favour neutrals slightly more here, incidentally) would require a bit more thought though, because they would no longer be straight-up 'water' objects, but neither would they be only 'zombifier/neautraliser' objects; I'm not sure if an object can be both water and something else, so... yeah, not sure exactly how this would work. In any case, I'd also consider doing this if NL gets the 'zombifier' or 'neutraliser' object type: at the moment, I'm not sure if it's getting these.

The 'ice water' idea is slightly more ambitious still, since it would require coding an entirely new object type (and, it's probably not worth it in all honesty! ;P).

But yes, you are right in pointing out that I'd essentially be re-using the water objects as "skins" for these new object types. All would still require some element of style re-designing, and in some cases extra bits of code.

Quote from: namida on February 10, 2023, 09:37:48 PM
How would you explain a swimmer turning into ice but a non-swimmer not doing so, though?

Hmm. Good point. Maybe all lems entering this water type should become ice, then. If a single non-resized ice water object is 64px across, perhaps the lems could become 8px-wide blocks of ice, so that it would cost 8 lems to cross the water. It's a bit of a silly idea, the more I think about it. I probably won't bother with this one.

Again, this is all talk anyway at this point. I'm concentrating on just the tasks outlined in the OP first. If I can get those done, maybe I'll look at other ideas as well.

WillLem

Furthering the idea of repurposing the OG water graphics, I'm thinking that ohno_rock and ohno_bubble should do something other than just be water. Their animations don't really suggest "water", in the same way that orig_fire and orig_marble's water objects are more like lava and acid/poison, respectively.

For ohno_rock, I'm going to look at making a new gadget type which triggers the vine trap animation (which itself will need to become a new state similar to burner and drowner). So, if a lem lands in the squiggly stuff, a vine will shoot out and eat them up.

For bubble though, I'm less inclined to want to make that one behave like a trap. I almost think that making it into a trampoline-type object which triggers the jumper animation would make way more sense. The only problem being that doing so would likely break a fair few ONML levels.

So, maybe we get the trampoline as a separate object some other time, and in the meantime the bubble water can trigger the exploder animation. That would be somewhat in keeping with its aesthetic of being many bubbles popping, and would retain its original status as a fatal object, but the question then becomes: should the exploding lem destroy the surrounding terrain? Again with the possible level breakage. Maybe there's a way to trigger the animation and sound but not the terrain-removing effect.

Ideas and thoughts welcome.

jkapp76

#4
You could have the lemming in the bubbling water trigger the drowning animation, but mod that animation to end with the explosion? Or, maybe better yet, the burning animation. That would look like he was scalded or boiled to death.
...Jeremy Kapp

WillLem

Turns out it's possible to have the lem explode but not destroy surrounding terrain, so this would be great for the bubble water (of course, it would have to be another object and not water - maybe we could call it Blasticine or something!)

Quote from: jkapp76 on May 19, 2023, 03:43:31 PM
You could have the lemming in the bubbling water trigger the drowning animation, but mod that animation to end with the explosion?

Nice idea, this. Essentially the lem would be transitioning from whatever > drowner > exploder, so it would be more a case of transitioning through the states than modding the actual animation. We don't want to give the idea that the object is water, though, in case players think that lems can swim through it, so maybe it's best to give the drowner state a swerve.

I've had a try with it going straight to the exploder animation and it works really nicely. Since we also have the choice of whether the lem should also destroy surrounding terrain, we can go either way with it.

If destroy, then we have a potentially interesting new object which causes lems to become instant Bombers on contact with it. However, it could potentially break several ONML levels. I don't want SuperLemmix development to be too hampered by existing content, but since it's the official levels we might want to take this into account.

If not destroy, then the object is simply another trap which kills the lemming, and its animation is the exploder. It essentially becomes another large-area-trigger trap (similar to water and fire) but one which lems can't traverse by becoming Swimmers.

Either way, I propose 'Blasticine' as a name for the new object type and exploder as the resulting effect. Would we prefer this effect to destroy terrain, or not?

WillLem

#6
Blasticine and Vinewater are both fully implemented! (including Editor support):



I'll try to improve the vine animation so that, for the lem on the far right, it doesn't appear as if the vine is coming out of the terrain rather than the Vinewater object. A lot of this depends on placement, trigger position & size, etc, but I can definitely tweak the animation to make it better.

As for Blasticine, the question remains: should it result in surrounding terrain being destroyed?

jkapp76

I love it!
I'd vote NO to destroying terrain. But not a hard no.
...Jeremy Kapp

WillLem

Lava is now its own water type, since we need Invincible lems to be able to swim in lava.

The update will be applied to all existing "fire water" objects in the SLX styles folder in time for the release of 2.7