[PLAYER][SUGGESTION] Option to force default lemming sprites

Started by Dullstar, June 18, 2020, 11:44:41 PM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

WillLem

Coming back to this topic for a moment (since it's a possible feature of future NL), I've read the OP again and it's worth keeping in mind that this is stemming from {content creators not providing zombie/neutral recolourings for their sprites}.

Forcing a default spriteset seems way too heavy-handed a way of dealing with this, when it's something that could easily be dealt with by simply communicating with the content creator and asking them to, hey, include recolourings for their sprites!

When I created the Lemminas sprites, I made sure to include recolourings for zombie, athlete, and selected lemminas. It seems unfair to punish someone who has taken the time to make sure they've done it right for the sake of resolving an issue caused by less careful content creators.

Perhaps a better way of dealing with this would be to build some sort of "spriteset recolouring tool", which allows users to create their own custom recolourings, whilst also making sure that they also apply recolourings to the various states. For example, it could be that it spits the resulting PNGs out with certain code allowing them to be used by NeoLemmix; if someone doesn't run their sprites through the tool, then they won't work in-game.

If this seems equally drastic/too much work, another idea would be to have the option to force a default recolouring, rather than an outright default sprite set. This could simply apply a set of colours (green/brown for zombies, white/grey for neutrals, for example) no matter what the initial colour of the custom sprite is.

Meanwhile, regarding another related issue (completely blank lemming sprites which don't even show up in CPM), I wondered whether the lemming's position could be indicated in CPM (via the pink dot) which would be a way to get around that particular problem, should it ever arise. And, by extension, could the dot itself be recoloured to indicate zombies, neutrals and athletes? This would also help towards resolving the OP's issue.

Proxima

Quote from: WillLem on December 28, 2020, 09:07:44 AMComing back to this topic for a moment (since it's a possible feature of future NL), I've read the OP again and it's worth keeping in mind that this is stemming from {content creators not providing zombie/neutral recolourings for their sprites}.

While that was what prompted one person to care enough to start a discussion about it, that is not the only reason for the feature to exist, as ccexplore pointed out:

Quote from: ccexplore on June 19, 2020, 01:28:17 AMAlso, I can't rule out in other cases. maybe the player has personal objections about the sprites and cannot fully enjoy the levels while using them.  It may not be what the content creator intended, but neither is the content creator's intent (hopefully?) to annoy the user or to cause the user to not play the level at all altogether.  In the same way that a player may mute sound and music, I think the content creator needs to be respectful of the user's wishes.

In the end, NL is a single-player game. The content creator doesn't know whether the user is playing with their sprites, any more than they know whether the user is listening to their intended music. The user can even edit the levels to make them all auto-solves if they want! Calling it "punishment" for the content creator is going a bit far.

That said, I'm not sure such a feature needs to exist, because it's fairly easy for the end user to force default lemmings anyway (a one-line edit to the style's theme.nxtm). But for the benefit of users who may not know about that, or may be afraid of messing with behind-the-scenes stuff in case their NL installation breaks, overall I'm in favour of adding it as a simple checkbox in the settings.

Gronkling

Seems like a harmless addition, I'd support it personally, nothing wrong with letting users choose what they want.

WillLem

Of course I agree that users should have the choice to enjoy the content however they wish; I fully support and encourage this, and if the option has to be implemented then so be it.

However, I'm just wondering if there may be a less heavy-handed way to deal with this particular issue (i.e. custom sprite sets not being provided with recolouring data), and now's the time to discuss it whilst it's on the "maybe happening" list, that's all.

Strato Incendus

Yes, if it's an option for the user, I'd fully support having that choice! :thumbsup: I might actually switch back and forth between sprite types myself if this gets implemented.

In particular, my packs Lemmings World Tour (as well as the upcoming Lemmings, Drugs, and Rock 'n Roll) use a bunch of different sprites to simulate lemmings stemming from different parts of the world. At the same time, though, I also like a classical lemmings feel sometimes, which can be better replicated by default sprites. On top of that, Lemmings, Drugs, and Rock 'n Roll is also inspired by Lemmings 3D, and that game only has "default" sprites. So in order to increase the L3D feel of that pack, default sprites would be the way to go.

Having the option of defining the sprites on a per-level basis (as it is now), but then spontaneously switching them back in the player for an entire pack / playing session, would allow me to do both without having to choose.

In short: This is something I would never have proposed myself, but I certainly see how I would personally benefit from it. So I'm not merely supporting it out of solidarity with those who'd want this feature; I would indeed have a personal application of such a feature, too ;) .
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

namida

QuoteIf this seems equally drastic/too much work, another idea would be to have the option to force a default recolouring, rather than an outright default sprite set. This could simply apply a set of colours (green/brown for zombies, white/grey for neutrals, for example) no matter what the initial colour of the custom sprite is.

Unless it's just an across the board "change EVERY color via a hue shift or similar", there is no way NL can know which pixels to recolor. It could theoretically try to identify sprites that are slight modifications of the standard ones and guess from that (though this would not be 100% reliable), but this would be a lot of work to implement. Not a bad idea if it were possible, but yeah, not practical to actually make it happen.

What could be more practical is to outright require at least one source-dest pair of recoloring for each possible category (zombie, neutral, athlete, selected), and treat any spritesets that lack this as invalid. Creators who are intentionally trying to mislead would still be able to find ways, that's not really preventable through realistic technical measures, but it would at least draw attention in cases where the creator is unaware of the need to do so.
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 December 28, 2020, 08:19:26 PM
What could be more practical is to outright require at least one source-dest pair of recoloring for each possible category (zombie, neutral, athlete, selected), and treat any spritesets that lack this as invalid

It's great that you're willing to consider this idea, but I think consensus seems to be that a player-side option for forcing the defaults is a desirable feature anyway, regardless of what is done about custom recolouring. So, the two features may need to exist alongside one another, rather than instead of one another.

Custom sprites are relatively uncommon at the moment but I expect to see more and more since the arrival of Lemminas and Millas, which are out-and-out reshapes rather than simple recolourings. So, it may still be worth implementing the recolouring feature for that reason (i.e. so that those who create custom sprites are required to provide recolourings), and this will hopefully encourage players who do use the "force default" option to give the spritesets a try, knowing that the various recolourings are a guarantee.

I personally would never use a "force default" option, since I'm more interested in enjoying the work that someone has put into a custom set of sprites. However, I can support the option on the grounds that the player ought to have as much control over the UI as possible (I myself insist on using my own panel and helper graphics, as well as one or two minor tweaks to the default sprites themselves!), so I retract my previous opposition to this idea.

Dullstar

As the person who originally suggested this, my main usage case for this would be for sets where certain used recolors are missing. In most cases I would not use the option - think clear physics mode for lemming sprites without being the full graphics nuke that actual clear physics mode is.

Requiring the recolors to exist isn't necessarily a bad idea, but it does impose extra work on creators making styles for use with their own levels (particularly vgaspec type levels), such as the pack that originally sparked this suggestion. While styles providing custom lemmings for the style downloader should be expected to have a complete set of recolors, I think for neutrals and zombies, the recolors should only be required to exist if these types are actually used (whether this should cause an automatic fallback or be an error might be debatable), but if zombies and neutrals aren't used by a particular style, it's fine to omit them. Athletes are common enough that it might be a good idea to require that particular recoloring outright. There are many packs that don't use neutrals and zombies, but few that don't make use of athletes.

I think when this was originally suggested, I might have thought a fallback in the case of missing recolors wasn't sufficient because of the possibility of someone deliberately making the recolors similar enough, but let's be honest, no one's probably going to do that, and if they do, then at least we know they did it deliberately and can leave bad reviews on their pack without feeling bad about it. Contrast this with the pack that originally caused me to come up with this suggestion, where the creator probably just didn't know they needed to create the recolorings. Default lemming sprite fallback in the event of missing recolors would probably be sufficient for that - although I'd like to emphasize I don't think we should be falling back for missing neutrals/zombies unless neutrals/zombies are used in the level. However, an option to force the default sprites may still be useful as an accessibility feature. It's fairly likely we have at least one colorblind individual in the community, and it's only a matter of time before someone makes a set of recolored lemmings without realizing their recolors are difficult for some people to tell apart.

namida

From V12.11, a set of custom lemming sprites will be required to have:
- A recoloring for "selected lemming"
- A recoloring for athletes

Additionally, only when being used on a level that contains the respective type of lemming, they will be required to have:
- A recoloring for zombies
- A recoloring for neutrals

If any required recolor is absent (in the case of zombie/neutral, only "if absent on a level that contains the respective lemming type"), the spriteset will be treated as invalid and the fallback to default will occur.

Everything up to this point is implemented in commit 9a944bd.

On top of this, a "force default sprites" option will also be implemented. It will of course, be off by default. This is implemented in commit 5260483.
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)