Lemmings Forums

Other Lemmings Projects => SuperLemmix => Closed SuperLemmix Bugs / Suggestions => Topic started by: Dullstar on March 02, 2023, 07:40:29 PM

Title: [SUG] Option to display Spawn Interval instead of Release Rate
Post by: Dullstar on March 02, 2023, 07:40:29 PM
For what it's worth, when NL redefined Release Rate in order to remove the duplicated values in the original, I switched my config to Spawn Interval because I figured if I was going to have to relearn the values, I may as well use Spawn Interval because the definition is very unambiguous about what you get when you use it: the spawn interval is the number of frames between spawns, whereas release rate is an entirely arbitrary scale.
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: WillLem on March 04, 2023, 06:17:01 AM
Added a poll.

It wouldn't be too much work to add this back in, but I'd personally rather not. If there is enough interest in the feature, I'll definitely consider it for the next release.
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: WillLem on March 04, 2023, 11:52:47 PM
2:1 in favour of no Spawn interval. I'd have to agree, so... I'll leave it as it is :)
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: Simon on March 05, 2023, 10:57:03 PM
2:1 in favour of no Spawn interval.

I don't think Dullstar has even voted. The 1 vote for spawn interval is mine.

Do non-maintainers who prefer the release rate really want to force their default on everybody? There would be no strong reason behind it. It can't be diversion of your time: NL has implemented the choice already. You'd spend more time removing the feature than just leaving it in place.

If the poll wording is accurate, then your intrerpretation is off. You ask X if X wants Y, the answer is no, then you draw the conclusion that X wants Z to not have Y.

The NL level format has spawn interval because it's unambiguous. Like Dullstar, I have no feeling for NL's arbitrary values either, other than how 99 means 4.

-- Simon
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: WillLem on March 05, 2023, 11:45:25 PM
NL has implemented the choice already. You'd spend more time removing the feature than just leaving it in place.

It takes up space in the config menu, and it's a feature I'm not particularly keen on. So, the decision to remove it is in part based on my own preference, as I stated in the post announcing the poll. I'm aiming to streamline the interface and revitalise the original game's aesthetics. RR is very much part of this.

You ask X if X wants Y, the answer is no, then you draw the conclusion that X wants Z to not have Y.

Don't quite follow you here tbh. I haven't asked anything about what people want for other users, that isn't part of the question. I'm asking X if they want Y; there is no Z in the equation.

FWIW, I've spoken to Icho about this on Discord and have realised that I need to be way more careful about my poll-taking now that I'm an active developer rather than simply a participant in the discussion. From now on, I'll be more clear about exactly what I'm asking and what results (if any) pollers can expect.

Chalk this one up to experience. Poll is closed, the new config will stay as it is.
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: Simon on March 06, 2023, 12:36:23 AM
YIKES! I pressed Modify instead of Quote, I keep doing this out of habit. Can the original message be re-instated? - WL

Simon: Not automatically, but I'm retyping from your quotes and from memory.



Quote from: WillLem
original game's aesthetics. RR is very much part of this.

Well, remember to revert to L1 RR then, where RR 1 is SI 53 and you have two RR values per SI value.

Quote from: WillLem
I haven't asked anything about what people want for other users, that isn't part of the question. I'm asking X if they want Y; there is no Z in the equation.

Options like this one (that we expect each player to set once and then stick for years with the setting) are always for other users (Z).

(A short paragraph about perfidous wording of the poll.)

But you can do what seems right to you. It's a free world. You can inflict the conversion of the spawn interval (what both the format explicitly and engine internally already use) to 107 − 2 × SI like L1 does, instead of showing the meaningful value as it is. You can do it even despite two people here spending their time to discuss SI/RR instead of working on their own projects.

Take the rant with a grain of salt. I've become involved with SuperLemmix via creating the board and discussing Lix's timing code. I'll be interested in all progress towards the zoom bug, and I'm looking forward for cross-pollination. I merely doubt I'll play SuperLemmix much with all the removed convenience.
   
-- Simon
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: Dullstar on March 06, 2023, 01:51:48 AM
Simon correctly deduced that I didn't vote in this poll, and I can see from the timestamps exactly how long it was open. I can never remember if the forum software gets my local timezone right, though, so I can't be certain what I was doing during that time, but I think we can all agree that it's a little silly to not get your voice heard because you were busy with something else when the poll happened -- it's not like I knew it was coming ahead of time to be able to make time for it!

Simon has already touched on making sure you understand how you're interpreting "no" votes. He correctly notes that "You ask X if X wants Y, the answer is no, then you draw the conclusion that X wants Z to not have Y." You at least had a "don't care" option, but that doesn't necessarily mean people won't just vote for their preferred option. If we're debating if something should be an option or not, and I already prefer the default, then there's not a strong incentive to keep that option alive because I get what I want regardless. Sometimes it's worth fighting against the option, if you can make a case why the option is a problem (e.g. the old debates on having direct drop as an option for the user or developer, where the inconsistent engine behavior can lead to problems with level design), but I don't think this is one of those times, as SI vs. RR is purely cosmetic.

Generally, I'd say 24 hours is a minimum time you should leave a poll open, and ideally probably a week. There forums don't generally move very quickly, so it's quite realistic to expect many people may only check once a day; maybe a few times a week; or even once a week! Only call it early if it's extremely one-sided, and err on the side of caution (if in doubt, don't close early). You may have thought this poll was one-sided, but it wasn't open very long, and there were only 3 votes. If a high ratio regardless of the number of the votes is the sole criteria for deciding when to call a poll, then you may as well just close every poll after the first vote, because 100% of people who voted picked whichever option the first voter picked.

I could probably make a case that you closed the vote early because it showed the result that you wanted, and I'm not sure a reputation for biasing feature votes in your favor is something you want if you want your development journey to be relatively drama free.



Incidentally, I believe I asked you a while back what your design philosophy for SuperLemmix was, when I was suggesting you should really decide who you're targeting this to instead of trying to make everyone happy, and you said you wanted to try to make everyone happy.

Now, making everyone happy is pretty much impossible (see: timed bombers), but you're now actively failing what's pretty much a freebie test: you say you want to try to make everyone as happy as possible, and then you go cull some random harmless cosmetic option nobody complained about that wasn't causing anyone any problems because you don't like using it.
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: WillLem on March 06, 2023, 02:34:40 AM
Quote from: simon
Well, remember to revert to L1 RR then, where RR 1 is SI 53 and you have two RR values per SI value.

I realise you've said this partially in jest, but just to take the point seriously for a second... it's the aesthetic of the RR that interests me more than the actual numbers.

The fact that RR is arbitrary means that you're concentrating more on its actual in-game effect rather than mathematically working out with pinpoint accuracy what the expected result of changing the figure should be. I'm less interested in trying to preserve or encourage that sort of gameplay with this engine, since doing so was virtually impossible in OG Lemmings and that's partly what makes it enjoyable for me personally.

Quote from: simon
Options like this one (that we expect each player to set once and then stick for years with the setting) are always for other users (Z).

Noted, and lesson learned. As I've said, I'll be more careful with polls in the future.

Quote from: simon
You can inflict the conversion of the spawn interval (what both the format explicitly and engine internally already use) to 107 − 2 × SI like L1 does, instead of showing the meaningful value as it is

Grain of salt added ;P

I'm only doing what I feel is right based on preserving the aesthetics of the game I enjoy, not trying to inflict annoyance on anybody. I really hope that you and anybody who plays SuperLemmix understands that.

Quote from: simon
I merely doubt I'll play SuperLemmix much with all the removed convenience.

I'll give you the removal of the SI option if you really want to see that as removed convenience, but other than that all of the player-helper are still available in SuperLemmix; Classic Mode toggles them all off in one go, but you don't ever have to play in Classic Mode if you don't want to.

The only exception to this is Activity Projection Shadows (not to be confused with Skill Shadows), which I feel are way too big a step in the direction towards reducing Lemmings to a 'picture puzzle' (as opposed to a motional video game) - these have been removed. But I have no plans to remove any of the others, even I use them much of the time and I agree they're excellent for helping the player to work their way through a level.

Ultimately, I just want players to also be able to enjoy the game as it was first designed - Classic Mode is an additional feature, not a subtractive one.

it's a little silly to not get your voice heard because you were busy with something else when the poll happened
---
it's not like I knew it was coming ahead of time to be able to make time for it!

The poll was open when you posted your reply, so I'm not sure why you didn't see it? Genuine mistake, I've just seen that I added the poll after your initial response. My apologies.

Simon has already touched on making sure you understand how you're interpreting "no" votes
---
I'd say 24 hours is a minimum time you should leave a poll open, and ideally probably a week

Yes, and I've already addressed this. I will take more care with polls in future. I've closed this one earlier than I usually would for this reason; I now regret having the poll at all. I made a decision to remove the feature and I'm happy to stick with that decision.

I could probably make a case that you closed the vote early because it showed the result that you wanted, and I'm not sure a reputation for biasing feature votes in your favor is something you want if you want your development journey to be relatively drama free.

Two things here:

1) I didn't close the vote early, I closed it today in response to Simon's comments which made me realise I do need to be a bit more careful with polling now that I'm an active developer.

2) I don't appreciate you outright accusing me of biasing the vote, I didn't do that. I commented that I was happy to leave the option as-is after I saw the 3 votes were swung that way and the poll had been open a couple of days at that point, but I left it open just in case things changed.

I'm not going to rise to the rest of your comment, but I'd appreciate it if you'd stop speaking to me with the condescending and antagonistic tone you're currently choosing to employ. SuperLemmix is a learning experience for me and a bit of fun which I'm happy to share with other fans of Lemmings. If you don't like what I'm doing with it, then you can ignore it, or by all means do as you've suggested you might do and go ahead with your own fork with features that you like, nobody is stopping you.
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: WillLem on March 09, 2023, 10:40:26 PM
Can't believe I forgot to mention this, but one of the biggest reasons I decided to cull the SI/RR option is because the current codebase only supports up to 32 options. Since I have implemented a lot of new options (and have plans to add even more), something had to make way, so I chose to cull options that I either don't agree with or don't see a use for.

With that said, from now on I don't wish to needlessly antagonise people by removing a feature that they may be used to, rely on and/or enjoy without giving the opportunity to discuss it first. So, I'm re-opening the poll for the SI/RR option. I'll wait until it reaches 10 votes either way (pollers can choose 2 options, so that's at least 5 people voting), or until 2 weeks from today, (whichever comes first), before making a final decision on it.

Note that my decision may not necessarily reflect the votes. I want to get rid of the option, so votes to remove it will have more weight, naturally. Reasons matter as well; I'd appreciate some feedback as to why keeping the option is important, for those that have voted to keep it. So far, the fact that it allows more precise use of the "hatch speed" isn't really a convincing enough argument to keep it, since I want to try and remove that level of precision from the game generally, and therefore it convinces me further that removing it is the way to go.

It has previously been suggested that there should be as few as 5 speeds for RR: 1, 25, 50, 75 and 99 (which could be re-labelled as Super-Slow, Slow, Medium, Fast and Super-Fast, for instance). I prefer this idea to allowing the Spawn Interval to be displayed, because SI is too close to the inner workings of the game and not far enough removed that players are concentrating on the effect rather than the numbers.

The only reason I'd rather not implement the 5-speeds idea is because I do hold the OG as a standard to aim for rather than deviate from, as many of its sequels, clones and remakes have done. And, I personally prefer more variation than having only 5 speeds would allow. So, I mention it only as a comparison (i.e there are things I'd rather do than display Spawn Interval that I won't be doing). Since SI is a feature that's been around for a while and that players may be significantly used to, though, it's up for discussion.

So, the conversation and voting is re-open and I'm genuinely interested to hear what people have to say. If no arguments for keeping the option are forthcoming, or if not enough people are interested enough to vote, then the option will remain culled.
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: Proxima on March 09, 2023, 11:21:14 PM
It has previously been suggested that there should be as few as 5 speeds for RR: 1, 25, 50, 75 and 99 (which could be re-labelled as Super-Slow, Slow, Medium, Fast and Super-Fast, for instance). I prefer this idea to allowing the Spawn Interval to be displayed, because SI is too close to the inner workings of the game and not far enough removed that players are concentrating on the effect rather than the numbers.

The only reason I'd rather not implement the 5-speeds idea is because I do hold the OG as a standard to aim for rather than deviate from

It feels odd that you should use that as an argument against the "5 speeds" idea. Sure, L1 uses a wide range of different release rates, but "Flow Control" is the only level where changing the RR is part of the solution, and in "Flow Control", the intended solution just switches between the level's original release rate (50) and 99, while the "disable the traps" solution leaves the release rate at 50 throughout. A few levels require setting the release rate to 99 so as to finish within the time limit. But fine-tuning the release rate is almost entirely the domain of challenges (especially with the sliding glitch) rather than intended solutions.

I tallied up the number of times each release rate is used in L1:
Spoiler (click to show/hide)

So, a large number of different RRs are represented, but one can't help noticing that most of them are very rare, and the designers seem to have been pretty content with just 1, 20, 50, a cluster around the 75 area, and 99. It's even more stark when one looks at ONML. There, the only values used more than once are 1, 5, 10, 20, 50 and 99. (It's interesting that 5 appears on the list, after being unused in L1 -- it's so close to 1 that you would not notice any difference in play.)

Since ONML was designed second, this really looks as though the designers themselves realised that the game didn't need so many gradations in release rate....
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: Proxima on March 09, 2023, 11:53:45 PM
One possible system would be to have a single-digit release rate, with the following values:

1 = SI 100 (round number, and close to NL's slowest possible SI, 102)
2 = 80
3 = 60
4 = 50 (close to RR 1 = SI 53)
5 = 40 (close to RR 25 = SI 41)
6 = 28 (RR 50)
7 = 16 (RR 75)
8 = 10 (RR 87 -- a key value because of the builder turnaround trick)
9 = 4
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: Simon on March 10, 2023, 12:00:43 AM
Quote
current codebase only supports up to 32 options.

That sounds odd, I'd recommend to investigate. A small and hard limit that is also nontrivial to raise?

Quote
I'm genuinely interested to hear what people have to say

I checked "Yes, accustomed" and "Yes, reason not mentioned (please reply)".

During play, the displayed initial spawn interval is for eyeballing, and I have feelings for it. E.g., spawn interval 60 gets the second lix stuck in first lix's digger pit, but 50 is too quick. I also have feelings for L1's RR 1, RR 50, and RR 99. With NL's RR, I have only a feeling for NL's RR 99, and for nothing else. When I see other people play and they have set NL to RR, I'll ignore it, or convert it in mind to L1 RR or spawn interval.

I don't like levels with precision RR fidgeting. I'll solve those by trial-and-error, not by exact math, and they're annyoing. It helps a little if I have a feeling for what the numbers mean. But this little isn't strong enough to make me check "know precisely what to expect when changing this value in-game". Thus, if WillLem wishes me to avoid exact math, then forcing RR over SI will not progress towards that goal. I don't do it in the first place, and if it's inevitable, I'll do it regardless of SI/RR and would then merely get annoyed from RR.

(Reminder that I don't foresee playing SuperLemmix much, given how I haven't played NL much outside contests.)

Here's an aspect from level design, not from play.

When I design a level, I want the initial spread of lix to look natural and unsystematic. That comes in two variations:
Therefore, I like to choose, during level design, an odd spawn interval (because the walker's animation cycle has 8 frames) that's away from nice divisors of the holding pit's length. In reality, I'll eyeball the rough interval, pick a nearby prime number at random, and test a few times to see how it looks.

With L1 RR or NL RR, it's not immediately obvious which numbers will make odd intervals, and they obscure entirely which numbers make prime intervals.

If Proxima's round values were the only ones allowed, I'd design odd-length holding pits instead.

-- Simon
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: WillLem on March 10, 2023, 04:22:01 AM
It feels odd that you should use that as an argument against the "5 speeds" idea.
---
Since ONML was designed second, this really looks as though the designers themselves realised that the game didn't need so many gradations in release rate....

Thanks for tallying these up, it's interesting to see the spread in L1.

The list is quite large with many values accounted for, and I imagine that those less-frequently-used ones were used for a reason in those levels; same goes even more so for ONML, in which the levels were even more tightly designed.

So, allowing more variation allows for the creation of levels which might need a more finely-tuned RR as its base. Sure, there might be more frequently used ones, but narrowing the choices down to just those feels unnecessarily exclusive, particularly from a design POV.

Having said that, I like your "9 options" list; it's an attractive prospect from a player POV, for sure. Simon's idea of revising it to allow "natural" timing of the Walker animations would be a good revision as well. Were it not for the fact that the Editor allows you to type the values you want, it would definitely be something to consider for the Editor to make level creation easier.

During play, the displayed initial spawn interval is for eyeballing, and I have feelings for it. E.g., spawn interval 60 gets the second lix stuck in first lix's digger pit, but 50 is too quick.

You can do the same with RR, how is SI more helpful in this case?

I don't like levels with precision RR fidgeting. I'll solve those by trial-and-error, not by exact math, and they're annyoing.

Agreed, fair comment. Perhaps this is an argument for not allowing more RR/SI values, but it's possible to make fidgety levels no matter which value is displayed, and as long as the player has some gauge in mind for what value equates to what result in-game, RR and SI are equal here, too.

It helps a little if I have a feeling for what the numbers mean
---
Thus, if WillLem wishes me to avoid exact math, then forcing RR over SI will not progress towards that goal.

OK, so I guess SI wins out a little bit here. If you're having to do mental arithmetic because RR is displayed instead of SI, then yes I'd prefer to avoid that.

Still, the ideal situation is that a player would be changing the value and then noticing how it affects things in-game, eventually learning to equate meaning to them by intuition. It's only because you know exactly what SI means that you favour it, and RR now looks more arbitrary. Conversely, a player who knows nothing about SI instead learns to equate meaning to the RR values...

Thinking about it, and with "OG preservation" aside, a scale using colours rather than numbers is probably what I'd personally prefer... (although, that would be very awkward to try and implement in a button-oriented panel; such a thing would probably need a sliding scale).

I like to choose, during level design, an odd spawn interval (because the walker's animation cycle has 8 frames)
---
With L1 RR or NL RR, it's not immediately obvious which numbers will make odd intervals, and they obscure entirely which numbers make prime intervals.

Ultimately, though, it's necessary to learn which values are useful for either RR or SI. You've learned SI, hence your preference. Someone who'd learned RR would feel the same way.

But OK - I don't want to exclude people who've taken the time to learn either value, so if I was to re-implement the option it would be for that reason.

How would people feel about bringing the option back, but having it show RR when in Classic Mode?
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: Dullstar on March 10, 2023, 10:12:59 AM
One advantage of Spawn Interval is that the direct correlation of the values to the result makes quick estimation of the amount to change it easy. If I want to double the release rate, that's halving the time between spawns, thus I want to cut the spawn interval in half. When you think about it that way, you can take a lot of the trial and error out of reaching the number you're looking for. And if you really want to do frame perfect SI/RR twiddling... well, it's not exactly hard to do that with RR either, as you can just figure out, "Yep, that's one frame off, gotta go up/down one... two frames off, so adjust by two..." because of the way modern NL RRs map to spawn intervals (and in the traditional scale, it just becomes an adjustment of 2, 4, 6... instead of 1, 2, 3...). So blocking spawn interval doesn't actually discourage these frame perfect RR/SI shenanigans at all and in fact makes quick estimations (the kind of RR/SI adjustments you might actually want to encourage) harder:

What is double RR 50? I don't know. It might be 75. I think? Could be wrong. IIRC the formula for NL SI to RR is 103 - SI = RR, and thus SI = 103 - RR so 103 - 50 = 53. 52 / 2 = 26 SI. 103 - 26 SI = 77 RR. So we got close, but... not quite (in practice it should be close enough in most cases). It looks like there's a bit of a pattern there, although I haven't proven it holds true for arbitrary values, where we want to increase the RR by half the remaining distance to 99 to double the release rate, but that's a bit harder to mentally calculate than simply dividing a number by 2. Quick, make spawns twice as fast with SI 28: that's 14, easy. Make spawns twice as fast with RR 75!... uh... that's gonna be, like 80 something I think? (it's 89) (these calculations assume the current NL scale, though I suspect they'd still work for the traditional scale, albeit with the SI equivalents being different, but I didn't actually check for the traditional scale).

And, of course, as mentioned, the NL RR scale almost completely different from the original game RR scale, matching only at RR 99.

Since SL doesn't seem too concerned about existing NL content breakage, there may be an argument for reverting to the traditional RR scale.
But: doing that would cut off a lot of the available range, and then you may end up with demand for a 3rd option to use the current NL RR scale (which would need to range from 50 to 99 instead of 1 to 99 because the traditional scale can't represent these values... unless you want negative release rates to be a thing).
Interestingly, reverting to the classic RR scale would actually fix a minor cosmetic issue in the SI display option, which is that SI >= 100 looks like garbage, but it usually isn't a problem because seriously who uses SI >= 100, that's like 6 seconds at the rate of physics updates. That is, like, EXCESSIVELY slow, and if I remember correctly, these SIs were enabled not because there was actually demand for them, but because they wanted to remove the redundant values in the traditional scale so that changing the RR value would always change SI, so SI from 53 to 102 were created as a result of the scale suddenly having space for 50 extra values. But I'm not aware of any serious complaints that traditional RR 1 was too fast.

Although annoyingly, if you for some reason want a stacker to let no lemmings past it, you need 54 SI which is *exactly* one SI out of the traditional range.

I see no compelling reason not to offer SI as an option even in classic mode (particularly if you don't revert to the traditional RR scale as neither current option is really classic...)
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: WillLem on March 10, 2023, 07:21:45 PM
One advantage of Spawn Interval is that the direct correlation of the values to the result makes quick estimation of the amount to change it easy. If I want to double the release rate, that's halving the time between spawns, thus I want to cut the spawn interval in half. When you think about it that way, you can take a lot of the trial and error out of reaching the number you're looking for.

Some trial and error is a good thing; it's directly interacting with and responding to the game as it's happening, which adds to the atmosphere. I'm aiming to put a little bit back in with SuperLemmix, so if SI helps to remove trial and error then it makes it a prime target for omission.

With that said, the aim is not to make the engine completely trial and error, because the QOL features are great for challenge play and/or quick testing of levels. This is why Classic Mode is optional and will remain so. It's also what prompted the idea to put the SI option back in, but limit Classic Mode to only using RR.

And if you really want to do frame perfect SI/RR twiddling...

I don't; quite the opposite, in fact.

The more I think about it, the ideal implementation of RR would be a sliding scale with only colours or a "slider" graphic as a visual reference. I'd rather the player be watching the lems than the numbers:

(https://i.imgur.com/QC96d2X.png)
(Something like this, for example)

Since SL doesn't seem too concerned about existing NL content breakage, there may be an argument for reverting to the traditional RR scale.

Unlikely to happen tbh; increased range is a good thing, this particular improvement will stay. Furthermore, there are equivalents to the OG scale on the NL scale which allow content preservation anyway.

I see no compelling reason not to offer SI as an option even in classic mode (particularly if you don't revert to the traditional RR scale as neither current option is really classic...)

At this point, more voices seem to be saying "bring the option back", so it most likely will happen.

However, it probably would be on the condition that Classic Mode presents the RR scale. Sure, NL's version might not represent the same numeric values as the OG, but I'm less interested in that than I am in the presentation of the "hatch speed" feature itself; since RR is an arbitrary scale, the actual output itself becomes more important as a "what's happening here?" reference, rather than "I already know what should happen here because I know exactly what these numbers mean." Therefore, RR is more in the spirit of what Classic Mode is trying to do (only slightly more so, I admit, but enough).
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: Simon on March 14, 2023, 06:43:01 AM
Quote
You can do the same with RR, how is SI more helpful in this case?

Right, for memorizing specific values, all scales work. We can define Blub = 2SI and memorize useful values in Blub.

It's merely easier to learn one scale than several. SI has advantages elsewhere. If RR were a useful abstraction, sure, it would help thinking here. But RR doesn't help here, and it's not a useful abstraction elsewhere either; it's a longcut elsewhere.

Pruning longcuts, much like pruning rubbish, tends to allow efficiencies and progresses that are hard to even imagine otherwise. E.g., the insight with the prime spawn intervals to produce nice-looking holding pits: Yes, after explanation, it's understandable in either scale, but it's immediately obvious in SI even before explanation. Or, e.g, how efficent framestepping and replay insert mode were designed to avoid undo from scratch, but have led to novel ways of level solving and experimentation. If you understand this, you should understand why, if given the ternary choice between L1 RR, NL RR, or SI (ignoring your numberless widget for now), I have a deep preference for SI beyond mere familiarity.

Contrast longcuts with abstraction, e.g., allowing the player to toggle only between fast/slow spawn interval. There is little need for precise numbers. Fast/slow looks like a useful abstraction here.

Quote
Ultimately, though, it's necessary to learn which values are useful for either RR or SI. You've learned SI, hence your preference.

Learning, yes.

But familiarity is only one source of my preference.

I've considered the reasons for SI before I learned it. Those reasons still hold after all these years, I still enjoy the benefits, and I like those benefits. The familiarity grew only afterwards.

Unfamiliarity is only one source of frustration, the obvious source, when you don't provide SI, but nonetheless provide RR, especially NL's RR. You'd give me 98 % of what I want and then refuse to give the obvious and easy remaining 2 %. It would be insidious. But there is also the deeper annoyance in how RR is not a useful abstraction of anything, and there is dissatisfaction in seeing that inflicted.

When I argue for SI, I feel as Michael Hartl must feel when he argues for τ = 6.28... instead of π (https://tauday.com/tau-manifesto). Tau is the more useful concept and incurs no drawbacks other than breaking tradition. Yet it's so hard convincing others of that usefulness. People want what is familiar and perceive that as simple, or as on equal footing.

(https://i.imgur.com/QC96d2X.png)

The gut reaction is that I like this widget better than displaying 103 − SI and better than 107 − 2 × SI. This feels sufficiently far removed from the precise numbers, yeah.

Depends on how fine-grained that widget will react to mouse clicks. Will it inflict pixel-precise clicking on top of learning another scale?

Consider ditching variable spawn interval altogether. That will cut all annoying RR fidgeting and give you panel space to boost. An instant fix for all your problems!



Related to the familiarity argument: Lix github #441: The editor should visualize the chosen spawn interval (https://github.com/SimonN/LixD/issues/441), e.g., with a picture or animation right beside the SI-setting widget.

-- Simon
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: WillLem on March 15, 2023, 12:13:11 AM
It's merely easier to learn one scale than several

I've learned RR. Sure, I could learn SI as well, then I guess I'd have more ways of understanding what is essentially the same thing.

I guess the question I should be asking really is how does SI translate to what's seen on-screen in a way that RR specifically does not? Maybe this will help me to see why it's more useful, because at the moment it just looks and feels like an equally useful way of enumerating the RR effect, not a more useful one.

Yes, after explanation, it's understandable in either scale, but it's immediately obvious in SI even before explanation

How?

The gut reaction is that I like this widget better than displaying 103 − SI and better than 107 − 2 × SI. This feels sufficiently far removed from the precise numbers, yeah.

If I knew how to code the slider, I'd probably do it! At the moment it's nothing more than a mockup graphic.

Depends on how fine-grained that widget will react to mouse clicks. Will it inflict pixel-precise clicking on top of learning another scale?

I suppose this depends entirely on how many pixels the graphic can be. If, say, 40px high with 33 of those being value-assignable, then each pixel would increase the RR by 3.

Consider ditching variable spawn interval altogether. That will cut all annoying RR fidgeting and give you panel space to boost. An instant fix for all your problems!

Heh! Tempting for sure, but doing this would break many levels in L1 and OhNo!, requiring lowered lem counts and/or raised time limits to fix the levels. Yes, SLX is not interested in content preservation, but the OG levels are an exception since they're bundled with the app and a lot of what I'm doing with SLX is aimed at making those levels relevant again.

Besides, I've always liked the variable RR feature and it's definitely something I would want to include anyway, even if building a brand new Lemmings clone from scratch (I'd almost certainly do it as a slider).

Finding a way to make it fit only 1 button space is a tempting prospect, though. Perhaps the existing split-button code could come in handy here, and the number could be displayed in the centre...
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: WillLem on March 15, 2023, 03:23:25 AM
Currently, I'm leaning much more towards not including the option. There are 3 main reasons for this:

1) I'm currently attempting to add it into the Config menu such that it's {unchecked and unavailable} when in Classic Mode. This is easy to achieve in itself, however it may lead some users who prefer the SI display to not hit the "Activate Classic Mode" button, and instead individually check all of the Classic Mode options that are displayed in the config.

The problem with this is that those users will not actually be in Classic Mode, since the mode actually implements a number of other features which affect gameplay (assign-whilst-paused, min/max RR jumping, savestates and replay behaviour, etc) but which don't warrant having their own checkbox. NOTE: This is explained in a "hint" when hovering over the "Activate Classic Mode" button, so these additional features are not completely "hidden" from the user.

It's my guess that those who want to use Classic Mode will prefer the RR display. So, as a compromise, activating Classic Mode will {uncheck} the "Activate Spawn Interval Display" checkbox, but keep the option {available} for re-checking. This is so that those who prefer SI don't have to resort to the above workaround. It's a wonky solution to the problem, though, and I'm now that bit less happy with the formerly cleaner Config menu.

So, when re-implementing the option I have to choose between 'keep the config menu clean' and 'always display RR in Classic Mode'; it's not really feasible to do both. Meanwhile, my own preference of not including the option at all satisfies both of these conditions.

2) I still haven't really seen a compelling argument as to why offering both RR and SI as hatch-speed-displays is worth it. OK, the votes have been somewhat in favour of keeping the option, but there have also been a couple of "don't mind" votes, and of course there are my own feelings on it.

3) I'm currently designing a new panel which will ideally have the button graphics drawn directly onto it; retaining support for displaying SI in this scenario will become even more problematic, since the individual -/+ graphics will (again, ideally) no longer exist to be swapped.
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: Simon on March 15, 2023, 07:05:10 AM
I want to buy a car. I pick one and ask the dealer for how much it costs. He says: −29,897 Rrollars. I'm happy because the figure is very useful to me. After all, I know that I have to pay less than that other model at −34,897.

I want to get a job. I'm negotiating a salary. Should I negotiate a yearly salary figure (that's paid in 12 parts, one per month), a monthly salary (that's paid as-is), hmmm, I think it's most useful to negotiate a 8-year-7-month salary figure (that's paid in 103 parts, one per month). The HR person is very happy about this and hires me. He won't have to convert anything and can immediately type my offer into his system that records 8-year-7-month salaries, the industry standard.

I want to post an enumerated list. Instead of 1), 2), 3) as you did, I write 102), 101), 100), 99). Nobody bats an eye because these numbers are very useful.

New keyboards will be produced. Instead of the "1" key, they have a "102" key. If we don't want the two extra digits when we type, we can erase them afterwards every time. I'll buy this keyboard, I think that keyboard is as useful as the ones we have. 102 is a natural figure to type often; after all, most people start counting from here.



This is how RR relates to things on the screen.

If it hasn't sunken in from this, I doubt I can help you understand the issue better. There are UI considerations other than swapping the buttons, e.g., you make a symbol for fast and a symbol for slow, then you don't have to swap them. But if you don't gain insight into why some ways of presenting figures are more useful than others, I doubt I can convince you to invest even more work here.

-- Simon
Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: Simon on March 15, 2023, 08:55:16 AM
how does SI translate to what's seen on-screen in a way that RR specifically does not?

See attachment. The SI of 28 manifests on the screen in the distance between lemmings.

Nowhere here you see the value 50 (= 107 − 2 ×28 + off by one) or 75 (= 103 − 28).

-- Simon

Title: Re: [SuperLemmix] Option to display Spawn Interval instead of Release Rate
Post by: WillLem on March 15, 2023, 09:28:21 PM
Quote from: Simon
I want to post an enumerated list. Instead of 1), 2), 3) as you did, I write 102), 101), 100), 99). Nobody bats an eye because these numbers are very useful.

RR looks like this to me:

1, 2, 3, 4, 5, 6, 7, 8, 9 ... 99, with the lowest number meaning "lems come out slowly" and the highest number meaning "lems come out quickly." This makes sense, works as I need it to in-game, and no further information is required.

SI, on the other hand, looks like this:

107, 106, 105, 104 ... 4, with the highest number meaning "lems come out slowly" and the lowest number meaning "lems come out quickly." OK so far, I guess, but now I need more information ... why is the lowest number 4? Why does it stop at 4 and not go all the way to 1? Why does it start at 107? These are questions that, as a player, I am bound to ask whether I've seen a Lemmings game before or not.

So, maybe I take the time to find out that it's the number of pixels between lemmings. OK, I understand it a bit more now but... is the game really going to expect me to know about pixel distance between lemmings? As a casual player, that's a bit of a red flag!

1 - 99 is intuitive and simple; I can see that, when the number is higher, the lems come out faster. A scale going from 107 - 4 makes far less intuitive sense to me personally, even when I know what it means. I don't care about the exact pixel distance between the lems, I only care how it translates to what's actually happening on screen, and I can find out by playing the game what sort of figures are useful.

Quote from: Simon
New keyboards will be produced. Instead of the "1" key, they have a "102" key. If we don't want the two extra digits when we type, we can erase them afterwards every time. I'll buy this keyboard, I think that keyboard is as useful as the ones we have. 102 is a natural figure to type often; after all, most people start counting from here.

Heh, good way of illustrating your point :crylaugh: But, I don't actually agree that RR presents this sort of problem. "Low is slow, high is fast" is all the player needs to know, and wherever exact figures come into play, "RR75" means just as much as "SI28" if what you're seeing on screen is the same result.

Quote from: Simon
you make a symbol for fast and a symbol for slow, then you don't have to swap them

Yes, great idea. UP and DOWN arrows could work, or maybe a single right-facing arrow for "slow" and 3 stacked right-facing arrows for "fast"; I'll see about making a split button with the number displayed in the centre. That way, continuing to support both RR and SI should be easy enough even without graphic-swapping. That solves the third issue.

If the votes remain as they are, I'll likely keep the option and not try to crowbar it into Classic Mode. That way, I can forget about it, those who want to use it can do so, and the Config menu is kept relatively clean and tidy.
Title: Re: [SLX] Option to display Spawn Interval instead of Release Rate
Post by: WillLem on March 19, 2023, 10:59:49 PM
OK, so now that I've had a few days break from working on SuperLemmix, I've realised that there is actually a very easy fix to the SI/Classic Mode conundrum that was previously eluding me, most likely due to learning burnout.

Basically, I want Classic Mode to always display RR, and I was attempting to implement this via the Config perameter checkboxes, which was a very messy way to do it, both for the UI and in the code itself.

The correct way to do it, of course, is to simply add "and not GameParams.ClassicMode" wherever there is an "if GameParams.SpawnInterval" statement.

This has now been done, and it's tested and working, so I'm that much happier to re-implement the option :)



And it's done. Re-added in Commit f8e154773