[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 1 Guest are viewing this topic.

Dullstar

Some custom content exists featuring custom lemmings sprites and recolors. While many of these are fair and well-designed, there are a few that lack colors for neutrals, athletes, and zombies.

Ultimately, it might be difficult to prevent such content from being created. Even if you were to require unique colors, someone could always try to make one with the minimum allowed differences.

I think a good solution to this on the player's end of things would be to include an option to force the player to use the default sprites, even if custom sprites or recolors have been provided.

WillLem

I agree that custom sprites need to be presented fairly and conform to expected recolouring behaviour. That said, I'm strongly against the idea of anything that bypasses or overrides something a content creator has spent a lot of time working on - particularly the sprites.

A better solution might be to automatically vet custom spritesets, and only allow those that provide recolourings to be playable in the Player. A simple error message such as "No specified sprite recolourings" would make it so that content creators couldn't even playtest the spriteset until the necessary recolourings had been specified.

At present, it's possible to recolour HAIR, CLOTHES and SKIN from within the Scheme file: I'd suggest that as long as a recolouring for one of these is specified for each of ATHLETES, NEUTRALS, SELECTED and ZOMBIES, this is sufficient. For example, if a content creator chooses to only recolour the hair - that's fine. It shouldn't be necessary to change everything.

NeoLemmix recognises and understands Hex values, and can deal with Shades, so another solution might be to simply automate recolourings for spritesets that don't specify at least one recolouring value per state.

ccexplore

Quote from: WillLem on June 19, 2020, 12:17:23 AMThat said, I'm strongly against the idea of anything that bypasses or overrides something a content creator has spent a lot of time working on - particularly the sprites.

And I'm generally reflexively against the idea of limiting user choices.  First of all, it was the content creator's problem that led to this in the first place.  I think it's fair that the player has a way around the problem in the meantime, after all it can take time to fix sprites.  The other alternative is, the player simply doesn't play the affected levels at all!  Talk about bypassing something the content creator spent a lot of time working on!

Keep in mind that once the sprites are fixed, the player is likely to go back to the intended sprites again.

Also, 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.

Quote from: WillLem on June 19, 2020, 12:17:23 AMA better solution might be to automatically vet custom spritesets, and only allow those that provide recolourings to be playable in the Player. A simple error message such as "No specified sprite recolourings" would make it so that content creators couldn't even playtest the spriteset until the necessary recolourings had been specified.

That might work assuming we require recoloring support versus fully custom sprites.  It might greatly reduce the need for the proposed option, although there may be other cases where the option is wanted for non-recoloring-related reasons.  In theory there could be recoloring enabled, but the color choices involved are still bad such that you can't really see the effects of recoloring.  So I can still see doing both rather than just one of the two.

WillLem

Quote from: ccexplore on June 19, 2020, 01:28:17 AM
And I'm generally reflexively against the idea of limiting user choices.

Me too: I'm always going on about giving players more options! Skill Shadows is my latest quest, not sure what's happening regarding that...

Quote from: ccexplore on June 19, 2020, 01:28:17 AM
I think it's fair that the player has a way around the problem in the meantime, after all it can take time to fix sprites.

I agree, totally. That's precisely the reason I suggested implementing a system that doesn't allow a non-recoloured sprite set to be playable: that way, creators can't even release the pack until this has been sorted, and players aren't waiting around for this to be fixed.

Quote from: ccexplore on June 19, 2020, 01:28:17 AM
That might work assuming we require recoloring support versus fully custom sprites.

Please can you rephrase this, I'm not sure what you mean.

Quote from: ccexplore on June 19, 2020, 01:28:17 AM
maybe the player has personal objections about the sprites and cannot fully enjoy the levels while using them.
---
In theory there could be recoloring enabled, but the color choices involved are still bad such that you can't really see the effects of recoloring.  So I can still see doing both rather than just one of the two.

Yeah, I guess there's not really any way around this other than requiring a certain part of the Hex value to be different, which could lead to unnecessary frustration and complications.

I'd tentatively agree that implementing both seems like the best of all worlds at this stage: players are unlikely to force default sprites just because the creator hasn't implemented recolouring (because the creator would have to have implemented recolouring for the sprite set to be playable before release), and yet players who have other objections to a particular custom set would be able to force the defaults.

That said, though: there's no way to force the levels themselves to look different according to player preferences, so why should it be any different for the sprites (for reasons other than recolouring, I mean)?

EDIT: Also... all a player needs to do to force the default sprites is to open the theme.nxtm file and change LEMMINGS from "whoever_whatever" to "default." So, it currently is possible via this workaround anyway.

ccexplore

Quote from: WillLem on June 19, 2020, 05:23:01 AM
Quote from: ccexplore on June 19, 2020, 01:28:17 AMThat might work assuming we require recoloring support versus fully custom sprites.

Please can you rephrase this, I'm not sure what you mean.

Doesn't NeoLemmix still support the option of explicitly providing different sprites graphics for the different states like athletes and neutrals, instead of only specifying a recoloring scheme?  Or is recoloring the only supported way now to handle athletes and neutrals now?  It's been a while so I no longer remember.

Quote from: WillLem on June 19, 2020, 05:23:01 AMThat said, though: there's no way to force the levels themselves to look different according to player preferences

Actually there kind of is one, and you asked for it--the ability to select high resolution vs low resolution graphics.

Terrain affects how the lemmings walk and move, and therefore is very limited in how it can be changed.  Objects have somewhat more flexibility, but are still impacted by the fact that different objects of the same type still often have differently sized trigger areas, and for triggered traps even the number of frames matter as to how exactly they interact with a bunch of lemmings passing by.  The lemmings sprites on the other hand are completely interchangeable without affecting how the level plays out, in that way it's a lot more like music and sound.

Quote from: WillLem on June 19, 2020, 05:23:01 AMEDIT: Also... all a player needs to do to force the default sprites is to open the theme.nxtm file and change LEMMINGS from "whoever_whatever" to "default." So, it currently is possible via this workaround anyway.

That's a fair point and might be good enough solution for the occasional times when this is needed, although it takes a little work to find out which style is being used.  It also means having to repeat this if multiple styles reference the same lemmings sprites.  Perhaps a better way is to overwrite the sprite graphics files themselves with the default ones, fixing it for all styles that refer to the same sprites.

This workaround also makes the defaulting of sprites style- or graphics-specific, which I think is how the proposed option would likely be used--not to force every style to all use the default, but just the few ones that are problematic.  Indeed, if we were to implement an option I would've strongly suggested also making it toggle via hotkey so that you can easily turn it on and off on the fly, so that you only use it when it's needed.

Anyway, considering namida's previous stances on similar options, I anticipate him favoring the workaround than implementing an option.  The disallowing of missing recoloring still sounds good though.

Dullstar

Part of the reason I'm not convinced that the workaround is the best solution is the fact that there was recently a pack that came out where every level had a unique style with athlete/neutral/zombie recoloring non-compliant lemming sprites. I don't mean to call out the creator, so I won't say what pack was, but I would have had to do that 10 times to bring the entire pack into compliance.

As for WillLem's suggestion of automatic vetting, the problem is that the checks would require us to make some calls. Specifically, if I don't wish to produce recolors of the sprites, but NeoLemmix says I must include the recolors, I could merely increment all of the RGB values by 1, and now when you check if athlete color == regular color then complain, NeoLemmix sees, hey, athlete color != regular color, so it's all good, but you can't actually tell the difference unless maybe if you squint at it really hard. You could make the comparison a little fuzzy and return true for "close enough" matches, but then you have to decide how close is too close - that's what I meant by "Even if you were to require unique colors, someone could always try to make one with the minimum allowed differences." Thus, the best solution as things currently stand destroys the custom art even more: simply play the entire level in CPM which gives lemmings meaningful solid colors.

Of course, then again, content creators who disregard these sorts of things are also probably more likely to make the sorts of levels that need to be played in CPM because who needs to be able to tell the difference between steel, destructable terrain, and the background?




For reference: CPM mode athlete/zombie/neutral colorings. Each square contains a walker and a climber of the same type. The left square contains regular lemmings, the middle contains neutrals, and the right contains zombies.

namida

QuoteDoesn't NeoLemmix still support the option of explicitly providing different sprites graphics for the different states like athletes and neutrals, instead of only specifying a recoloring scheme?  Or is recoloring the only supported way now to handle athletes and neutrals now?  It's been a while so I no longer remember.

NeoLemmix has never supported this.

NeoLemmix has, and still does, support entirely custom lemming spritesets; and as of fairly recently, also supports a "use an existing spriteset but recolor it" setup (provided the spriteset is set up for this - in practice, as far as I know only the default and Xmas sprites actually are fully set up for it, though GigaLem's Milla sprites also have partial support) for the whole spriteset. But for different states, it's only ever been recoloring.
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)

Dullstar

If recoloring is required for these states, I wonder if the perceived complexity of configuring it might be why some custom sets don't have proper support.

mantha16

hey everyone hes talking about Telelems

Dullstar your inference that I made a deliberate choice in the sprites rather than not realising or being told that I would need to change things on the athletes is obnoxious.   

I won't be changing the aesthetics of my levels just because you don't like them.  I'm not interested in maintaining the status quo or doing things purely because something is frowned upon.

I'm really not interested in the opinion of someone who just wants to bash someones work instead of constructively trying to help. 

IchoTolot

I think an option for this would be a good idea.

If a person is not very found of some sprites, or some sprites are currently in a incomplete/broken state this would be an easy way to improve the player's experience.

The option is just generally a good idea in my opinion.

Dullstar

I still haven't identified the offending pack. I probably left enough information that someone could have figured out what pack it was if they'd seen the pack, but I went ahead and removed any information that wasn't directly relevant nonetheless. I could have identified it by name here, but I didn't want to call out the pack or its author in this suggestion, because this suggestion isn't meant to pick a fight.

I brought up the possibility that intentionally-non-recolored sprites could be made because I needed to explain why I thought this particular solution was better than an alternative solution (specifically, WillLem's suggestion to have the player require that the recolors exist). I did not accuse anyone of actually having done this.

mantha16

you havent made constructive suggestions youve just demanded things are done the way you like it.

As far as picking a fight I'm not fighting I'm just not bowing down to how you say things should be

WillLem

Quote from: Dullstar on June 19, 2020, 09:16:21 AM
As for WillLem's suggestion of automatic vetting, the problem is that the checks would require us to make some calls... I could merely increment all of the RGB values by 1

Yeah, to be fair I already did understand that's what you meant. I think that's the only real problem with the idea of automatic vetting.

That's why I suggested that maybe such a system could require that a specific part of the Hex value be changed, or a certain number of digits. This is more likely to yield different results, although I can see it's by no means perfect and could actually cause problems for creators and players.

Quote from: mantha16 on June 19, 2020, 11:48:50 AM
I won't be changing the aesthetics of my levels just because you don't like them.  I'm not interested in maintaining the status quo or doing things purely because something is frowned upon.

This is how I feel pretty much every time I get feedback that's anything other than "everything you've done is perfect, and couldn't possibly be improved!" It's good to feel connected with your creative output that way, and I totally understand how it feels when others don't share your views on something you've spent time and energy creating.

That said, what I've learned is that with something like Lemmings levels, it's important to remember that it isn't just a piece of art that can be objectively discussed in a "no-one's-right/no-one's-wrong" kind of way - it's a game, with certain rules, expectations, and mechanics which dictate how others will experience it.

This is a vital difference, and one which makes it particularly important to be able to take other people's views into consideration. There's lots about NeoLemmix philosophy that I don't agree with, but I do understand that it's important for everyone to be on the same page about certain things.

Keep going with what you're doing, Mantha - as harsh as it can sometimes be, this is a great place to learn how to co-operate with others when you're naturally a creative rebel! :lemcat:

GigaLem

I apologize if what im suggesting might be off topic, but if such a feature did become a thing, why not a similar feature in the editor to force a specific type of lemming in the level and the set's default is what the $LEMMINGS line of text calls for what lemming to use in the set? and a drop down menu gives you the choice of what custom lemming sprite sheet you can use?

namida

Quote from: GigaLem on June 20, 2020, 07:34:13 AM
I apologize if what im suggesting might be off topic, but if such a feature did become a thing, why not a similar feature in the editor to force a specific type of lemming in the level and the set's default is what the $LEMMINGS line of text calls for what lemming to use in the set? and a drop down menu gives you the choice of what custom lemming sprite sheet you can use?

One of these is "add a checkbox to the options menu, that controls another "yes or no" setting - something that there's already many of, so it's written so it's easy to add / remove them. Then, if this option is on, ignore any lemming spritesets specified in the theme file, and just use the default lemmings instead". (EDIT: And ignore any recoloring data in the theme file, except maybe "MASK".)

The other is "add a new configuration item to the editor, which in turn needs to figure out a full list of which styles have lemming sprites and which don't; it additionally needs to support a "use the theme's specified set" option. If we're allowing equivalents to the theme-based recoloring, I then further need to implement an entire UI for this, which is also one of those "very easy to abuse" features - and then enter into the discussion (and add support, if decided) for overriding the other theme colors too, which the fact that all this exists would be seen as a strong argument towards "why not allow the rest". Or if recoloring the sprites is not allowed, I have to deal with the whole inevitable debate about why not. Then, I need to figure out how to best represent this in a level file's format, and add that to loading and saving on both the editor and player side. Then, I need to implement actually applying this in the player, where currently, level data and lemming sprite data are more or less the programming equivalent of "entirely unaware that each other even exist". Then, on top of all that, I have to go and update the level format topic to reflect these new additions, and describe it in a way that's easy to understand." And all of this is for an option that will very rarely see use, and a significant proportion of the use cases for it are either "do it just because I can" or "do it for trolling purposes".

So yeah - basically, one of these is a quick 5 minute option, the other is a huge major feature. That's "why not", or more accurately, why "if we have the former, why can't we have the latter" is not really a meaningful point. As a suggestion in and of itself - I don't think it's very likely to happen, simply because it provides zero benefit to puzzles and isn't likely to see frequent use (plus, the abuse potential), but my biggest point here is that it's not comparable to this topic's request in scale, so there's no logic by which having one raises a "why not?" about the other.
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)