[SUG] Object updates

Started by WillLem, March 22, 2024, 12:36:09 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

WillLem

Since a lot of new objects have made their way into SLX, it's time to look at what we can get rid of.

Splitters - these will be kept

Splitters are particularly problematic code-side, and I've personally never found them to be particularly useful as a designer or enjoyable to encounter as a player. So, unless there are any objections from people who currently use SuperLemmix, these will be removed shortly.


Teleporters/Receivers
- these will be kept

Now that Portals are a thing (and a much more useful thing at that), I'm not sure if we need Teleporters any more. This one is very much up for discussion, though; these will not be removed unless others agree that they aren't needed. If there are no replies, these will be kept.



Paint/Background

These both achieve more or less the same thing: a no-effect object that doesn't have a trigger, and is only there for decoration. My instinct here is to merge these into a single object (likely "Paint", to remove the confusion between "Background" and background images, which are in fact a different thing), which can then be drawn wherever the designer likes (e.g. in the background or on terrain as decoration) by using the "No Overwrite" and "Only On Terrain" properties. I'll wait for feedback before actioning this - if there are no replies, this one will go ahead.


Animation/Single-Shot Animation

These are triggered animations that can be used mainly for fun, or to delay a lemming - they don't remove the lemming like traps do. However, I'm thinking these can be merged into traps; we can check a trap's .nxmo for "NO_REMOVE" or something similar (that way there's no need to change existing traps), and then the trap would essentially become an "animate only" object. I'll wait for feedback before actioning this - and, if it turns out that there are lots of existing animation objects in the styles, then that might be enough to put me off this one!

potamo


GigaLem

I feel object removal is gonna require telling that you can't convert levels from NLX to SLX, Since a few of those objects were in Neolemmix for years already, and I feel if you wanted to keep NLX to SLX conversion, you're gonna have to keep those objects. If you want to remove any of those, just say that NLX conversion will no longer be supported due to many factors breaking levels.

If anything, SLX should try not to add too many features, such as the many recent suggestions, while its fine to experiment, feature creep might harm it.

I suggest keep what's already been there but scale back on things if need be.

WillLem

#3
OK, fair enough. We'll keep things as they are for now - teleporters and splitters can stay.

I'd still like to look into merging Paint & Background into a single object; this can be done with a minimum of fuss/effort.

And, animations & one-shots could be merged into traps by allowing traps to specify whether or not to actually remove the lemming; we'd look for the line "NO_REMOVE" in a trap's .nxmo, and then it would essentially become an animation object. There are currently only 51 objects in the entire styles collection which use ANIMATION/ANIMATIONONCE, and they're all Flopsy's. I'll ask him if he doesn't mind me making the change; it can be done in about 30 seconds in a text editor.

Simon

Quote from: WillLem on March 22, 2024, 12:36:09 AM
Splitters are particularly problematic code-side

What issues do you see code-wise?

At best, I see how splitters can be boring when you send too few lems through: 50 % of the time, a splitter does nothing but prepare itself for the next time. namida grabbed it from L3D, where it rotates by ±τ/4 all of the time instead of 50 % of the time, in hope that it works well enough in 2D. Reminds me of how I hopefully took the walker from L3, where it either turns or cancels, but oddly never both.

-- Simon

Strato Incendus

#5
QuoteI feel object removal is gonna require telling that you can't convert levels from NLX to SLX, Since a few of those objects were in Neolemmix for years already, and I feel if you wanted to keep NLX to SLX conversion, you're gonna have to keep those objects. If you want to remove any of those, just say that NLX conversion will no longer be supported due to many factors breaking levels.

This. :D I can understand the thought process on a theoretical level — but in practice, it reminds me of the discussion we had about culling the Fencer, due to the Laserer supposedly being able to replace it.

But I'm glad to hear you, WillLem, immediately accepted GigaLem's comment and Splitters and Teleporters appear to be safe now. ;)

If player criticism had always been heard this readily, perhaps Radiation and Slowfreeze would never have been culled from NeoLemmix in the first place — which would have saved everyone the effort of re-implementing them (you on the programming side, and level designers from adjusting their levels again during conversion from NL to SLX). Especially now that WillLem has also taken over some responsibility for NeoLemmix, as far as I've understood it? :lem-shocked:



WillLem wasn't here during the Culling Frenzy, but that memory is a reason why I continue to be this allergic against any proposition of culls. :D To relate this to GigaLem's comment, back during the Culling Frenzy, the developer literally said: "Existing levels are unimportant".

One of the statements which got the strongest backlash. Because at least when it comes to changes from NeoLemmix to SuperLemmix, they would only hinder conversion, but the NeoLemmix levels would remain intact.

Within NeoLemmix itself, however, culls would render existing levels unplayable — unless the pack creator stuck to Old Formats. Which is precisely what I did for a long time, and presumably also why quite a few other NeoLemmix packs, including highlights like Lemmings Stampede, remain unconverted to this day. (Unless somebody has taken it upon them to convert these packs recently, without me being aware of it... :D)

Not necessarily because of Radiation and Slowfreeze themselves — rather, I assume it was because of the uncertainty about what would happen to NeoLemmix. And now, with several versions of New Formats in between, and conversion of Old Formats levels being difficult to impossible without going through multiple interim versions of New Formats, the likelihood of seeing some of these Old-Formats packs converted seems to decrease by the day.

In short: I'm glad I converted Lemmings World Tour to New Formats when I did — and saved all the levels required for Pit Lems Remastered when I did. Even though I still haven't had the time to adapt the latter into a releasable state.


As for backgrounds, I hope these remain available as they are - I haven't experimented with "paint" or any other such features yet. The thing about backgrounds is that not only do some packs rely on them for aesthetics; some tilesets actually rely on backgrounds to be functional. For example, L2 Shadow (which is a nightmare to use in Very-Old Formats 1.43, where the background was the standard black, rather than the dark blue from L2) or Arty's Silhouette tileset.

The latter I intentionally put against a black background for a somewhat troll-y tutorial level in Lemmings, Drugs, and Rock 'n Roll, which is supposed to teach you about clear-physics mode and thus, much like the levels for Highlight Lemming or Virtual Lemming in Lemmings 3D, forces you to use clear-physics mode by making the terrain invisible against the background.
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

WillLem

Quote from: Strato Incendus on March 23, 2024, 09:02:45 AM
But I'm glad to hear you, WillLem, immediately accepted GigaLem's comment and Splitters and Teleporters appear to be safe now. ;)
---
The thing about backgrounds is that not only do some packs rely on them for aesthetics; some tilesets actually rely on backgrounds to be functional.

Ultimately, I want people to be happy with SLX and want to make levels for it. So, if a cull would potentially put people off, then it's something to avoid.

With that said, I still think that revisions can be made to some of the existing objects. In particular, Paint and Background really don't need to be 2 different things: "Background" objects can in fact be drawn over terrain (and still have the moving animation, etc).

What's very likely is that I'll rename "Background" to "Paint" and then get rid of Paint objects. This will retain the functionality of Background objects whilst giving them a more appropriate name: at the moment, it's easy to confuse them with actual backgrounds, especially code-side. I don't think this change will upset anyone when it comes down to it - it's a very easy swap and I'm happy to update all existing Background objects myself; it can be done very quickly with a text editor.

Quote from: Strato Incendus on March 23, 2024, 09:02:45 AM
Especially now that WillLem has also taken over some responsibility for NeoLemmix, as far as I've understood it? :lem-shocked:

Simon and I have been working on this, but that's as far as my NeoLemmix contribution will go. Namida has quite understandably ruled out any other changes to the "official" version - he doesn't want to have to maintain other people's work. And, I'm beginning to see myself with SLX that it's possible to just keep adding stuff endlessly - he had to call it somewhere, I totally get it.

With that said, if there's enough demand after the final version of NL is released, I might make a "NeoLemmix +" or "NeoLemmix CE" which will be identical to the final version of NL, but will add some more QOL UI stuff that has been widely requested. If I were to go ahead with this, the game itself would remain unchanged.

Quote from: Strato Incendus on March 23, 2024, 09:02:45 AM
WillLem wasn't here during the Culling Frenzy, but that memory is a reason why I continue to be this allergic against any proposition of culls. :D To relate this to GigaLem's comment, back during the Culling Frenzy, the developer literally said: "Existing levels are unimportant".

To be honest, I took that same stance myself when I first began SLX development (i.e. existing levels shouldn't inhibit development). However, I've since realised that it's far better to compromise and respond to what the community actually wants. I've obviously got a considerable amount of leeway as SLX isn't one of the "main" Forum engines, but I ultimately don't want to put people off wanting to get involved and give SLX a try.

So, my current stance is still to prioritise ideas and development, but take each idea on its own merit in terms of how much it might impact existing content. With something like culling an existing feature, if I get even a small amount of pushback I won't go ahead with it.

Proxima

Quote from: Strato Incendus on March 23, 2024, 09:02:45 AMIf player criticism had always been heard this readily, perhaps Radiation and Slowfreeze would never have been culled from NeoLemmix in the first place

You seem to forget that these culls were decided on by forum discussion. Sure, Nepster as (then) project leader was the one who actually made the decision, but that was after opening the decisions to public criticism -- which is why the disarmer was kept, for example. For slowfreeze, there were a couple of dissenting voices, but not enough to outweigh the arguments in favour of culling and the number of people who contributed to the discussion and supported it.

And believe me, those of us who supported the cull haven't disappeared; we just don't keep posting about it now that it's long since decided. But now that NL has moved into new-formats with its much better quality-of-life features, I've completed several packs and look forward to playing more when I have time. And every time I select a pack with the intention of playing all the way through it, I'm glad that I won't have to suffer through radiation and slowfreeze levels.

QuoteAs for backgrounds, I hope these remain available as they are

I think there is a confusion here. WillLem is talking about the "background" object type, not backgrounds!

WillLem

Quote from: Proxima on March 23, 2024, 02:34:24 PM
I think there is a confusion here. WillLem is talking about the "background" object type, not backgrounds!

Precisely the reason I want to merge these into a single "Paint" object type (which will retain Background object properties - i.e. speed, direction, draw ability, etc) - it avoids exactly this confusion!




With Portals/Teleporters, I'm currently thinking that the best thing to do would be to update Teleporters to be able to function as Portals, if desired by the object designer.

2-way Teleporters have previously been a thing anyway; I think Portals can be optionally 1-way or 2-way, so the code should exist to optionally add this functionality to Teleporters. Design-side, we may need an additional Editor button and a line of text in the Teleporter/Receiver's .nxmo, but that's about it.

Meanwhile, giving a Teleporter a single-frame animation effectively makes it behave like a Portal in terms of how quickly it can process lemmings, but there may be some important differences in how it's actually implemented that I'll need to look at.

Essentially though, if it's at all possible, I'd prefer these to be one and the same object with designer-side options for specific behaviour. I hope people can agree that this would be better than having 2 different object types to maintain.

Strato Incendus

QuoteSo, my current stance is still to prioritise ideas and development, but take each idea on its own merit in terms of how much it might impact existing content. With something like culling an existing feature, if I get even a small amount of pushback I won't go ahead with it.

Sounds reasonable. ;) The primary thing that will take time when converting any pack from NeoLemmix to SuperLemmix is checking any instaces of Stoners in the NL version, and recreating the solution with Freezers.

The Freezer is a perfect example - because while I ultimately agree it's the superior skill to the Stoner, it's specifically a challenge for pack conversion from NL to SLX (especially for levels involving Stoner-Stacker interactions, which are not possible with the Freezer - rather than the more "standard" application of using a Stoner/Freezer to break a fall, which works pretty much the same way).
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

WillLem

#10
Actioned the change from "EFFECT BACKGROUND" to "EFFECT DECORATION" Player and Editor side; all existing styles containing these pieces have been updated as well. The effect is exactly the same, it's only the name that has changed. This has been done mainly to provide clarity in both the Player and Editor codebases (in fact, "Decoration" is already used in the NL Editor as a mouseover tag for Background objects). So, to be clear: Background objects are now known as "Decoration."

Meanwhile, the Player has been updated to interpret "EFFECT PAINT" as a decoration object, albeit one that's drawn only on terrain; the magic here is done Editor-side, so as far as style design is concerned, "PAINT" objects are still a thing. In case anyone is wondering what these are, it's essentially a no-trigger image/animation that's drawn only on terrain by default.

All existing styles have been updated to reflect these changes - so, if you're the author of an existing style that's been available in SuperLemmix prior to the date of this post, you don't need to do anything. And, rest assured that your style pieces will continue to behave exactly as intended.

Player commit 6308febd2
Editor commit 5be10a7

namida

The intent behind Paint was to eventually cull only on terrain as a setting, with objects intended to be used this way made into paint objects. Given that never went ahead, and SLX presumably wants to go the other direction on how only on terrain is used, it's probably not worth keeping in SLX. It may be worth flagging such objects in some way so that when NL levels using them are imported, the only on terrain attribute is applied.
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

Quote from: namida on March 25, 2024, 07:50:56 PM
The intent behind Paint was to eventually cull only on terrain as a setting, with objects intended to be used this way made into paint objects.

I remember something about that, thanks for clarifying.

Quote from: namida on March 25, 2024, 07:50:56 PM
It may be worth flagging such objects in some way so that when NL levels using them are imported, the only on terrain attribute is applied.

Not a bad shout, but I wonder if the Editor still recognising them (and, thus, applying the Only-on-Terrain property) is enough to support at least normal use of these objects?

WillLem

#13
For 2.9, I'll be looking at adding NeoLemmix's 12.13 objects as well as updating some existing ones. Here's a fresh list:

  • Portals
  • (De)Neutralizers - 2 opposing objects
  • Permaskill (De)Assigners - 2 opposing objects
  • Splitters
  • Paint objects
  • One-shot/continuous animations

So far, here's what's proposed for each of the above:

Portals

Portals will either be added as-is, or (if at all possible) integrated into existing Teleporter logic to essentially make these one single object type. "PORTAL" would then be a property of a teleporter/receiver combination which would make them behave exactly like 12.13 Portals.

(De)Neutralizers

These will be added, most likely as-is. The only things that might be different are the default graphics/sounds.

Permaskill (De)Assigners

Currently not sure about either of these; they seem too close to gimmicks that were previously removed from NeoLemmix (and for good reason). At present, it's most likely that neither will be included (at least for now).

For the sake of discussion, it would be possible to add the Assigner as an object which can assign any skill except Timebomber and Freezer (for those, we have Slowfreeze and Radiation). The assignment would take place immediately (so, no countdown - this would get far too messy), and there is also the possibility of these being one-shot objects if assigned this property in the .nxmo.

For De-Assigners, the possibility here is that they could cancel a skill action as well as remove permaskills from the lemming.

Splitters

It was previously decided that Splitters should be kept when the idea of culling them was put forward.

I'm now thinking that they could be improved further, whilst maintaining current functionality.

The idea is to make these Traffic Lights instead; green would let the lemming(s) walk past, red would turn the lemming(s). A third property, yellow, would halt the lemmings temporarily, and they would remain facing the same direction. All of these states would be controlled either by time or number of lemmings (the choice being up to the level designer). So, single-lemming red/green (no yellow) would essentially function like a regular splitter.

One-shot/continuous animations

The proposal with these is still to merge them with traps; any trap would then be an "animation" which is then either deadly, or not. Existing animation objects would then be parsed as traps (or vice versa) by the player, so no need to mass-update all of the exiting animations.



In addition to the above, as of 2.9 onwards, the proposal is that every object will be accounted for in the "default" style folder with an agreed-upon generic, so that each object type is accessible from any style.



Thoughts?