Features for a Community Edition

Started by WillLem, November 22, 2024, 08:47:48 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

WillLem

Giving topic: Future of NeoLemmix Development some thought today.

Since it's been mentioned a few times (including by namida) that a "NeoLemmix Community Edition" might be a good idea following the release of the final version of NeoLemmix, it might be worth thinking about what features we might want to include.

I've prepared a list with some ideas; all of these have been implemented and tested in SuperLemmix, but their implementation in NeoLemmix might end up being slightly different. So if, for some reason, you don't like the SuperLemmix version of an idea, bear in mind that it can be always be redesigned/reformatted for inclusion in NeoLemmix.

It's probably worth mentioning now that none of the following features will be added without community approval; the whole point of this is to be a continuation of NL's development with community input as the principal guiding force*. The ideas are being presented here to start discussion and get an idea of which ones people would/wouldn't like to see included in the Community Edition. At this point, it's probably most helpful to list items that you definitely would and definitely wouldn't want to see in a reply, ignoring anything you feel neutral about.

*I'm currently thinking that 75% should be the absolute minimum in a poll result for a feature to be implemented.

New Skills/Lemming States
:lemming: Sleeper - this state is entered when time runs out and the lemming reaches the exit. This is mostly aesthetic, but also simulates exit behaviour as these lemmings cannot be assigned to

Options Menu
:lemming: Add option to deactivate helper overlays

:lemming: Add option to deactivate skill queueing

:lemming: Add more auto-naming options for Replay files and widen the dropdowns for easier reading

:lemming: Re-word 'Don't Replay After Backwards Frameskips' as 'Replay After Backwards Frameskips' and uncheck it by default (current user option will be unaffected)

:lemming: Add option to Replay after Restart (or not)

:lemming: Hotkey Config - Add Reset, Cancel and Save & Close buttons

:lemming: Hotkey Config - Add in-dialog text (rather than a popup) to let users know when it's listening for a keypress

:lemming: Add option to load either the Next Unsolved Level, or the Last Active Level (current behaviour)

Level Select Menu
:lemming: Upgrade keyboard compatibility; allow arrow-key-browsing to load each level preview, load the selected level into the player by pressing [Enter]

:lemming: Add "Reset Talismans" button, so players can reset their talisman progress on a per-level basis. Very handy for level testing, and when replaying an already-completed pack!

:lemming: Allow Level Info icons to be customised per-style and per-levelpack

:lemming: Add button to Show/Hide Advanced Options (rather than it being a config option)

:lemming: Increase width of, and text size in, Level Select treeview

Zombies
:lemming: Add Zombie Walkers - a dedicated sprite for walking zombies, which also applies when the Zombie is falling

:lemming: Add a "Z-" prefix to the skill panel string for all activities being performed by a Zombie

:lemming: Add Zombie-specific sounds for level intro, exiting, splatting, falling offscreen and ohnoing

Updated Game Controls
:lemming: Add Playback Mode - this can auto-play an entire folder of replays for a selected levelpack, with various playback options

:lemming: Update Replay Renamer (now known as Replay Manager in SLX) to include additional replay renaming options (including the ability to append the pass/fail result of each replay) when performing a Mass Replay Check

:lemming: Add Infinite Skills Hotkey - this sets all skill counts on the current panel to infinity, allowing the player to experiment with different solutions, get a better feel for the various skill actions, or just have fun with the level without having to worry about the skill count. Also useful for level creation purposes

:lemming: Add option to assign hotkeys to individual panel buttons, regardless of which skill happens to be on that button for the current level - for example, if "Numpad 5" is assigned the 5th button, the 5th button will be selected when pressing that key, no matter which skill is currently assigned to that button

:lemming: No longer overwrite previous assignments when playing in Replay Insert mode (in SLX, the Assign Fail sound plays, and the most-recent assignment is not recorded, preserving the original assignment at that frame)

:lemming: Add .nxrp Windows-File-Association; when associated, clicking a replay file will open NeoLemmix and load the level & replay, ready to be played back immediately!

Skill Panel
:lemming: Make panel hi-res only (regardless of game setting)

:lemming: Widen panel to allow more skill types per-level

:lemming: Add Rewind button

:lemming: Add Turbo Fast-forward functionality (no button required, this would be hotkey-only)

:lemming: Animate Replay "R" icon and make it clickable to cancel the replay (including during Replay Insert mode)

:lemming: Make negative save count optional; the alternative would be to count upwards from 0 with the number in yellow until it reaches the save requirement, at which point it would become green

:lemming: Add (optional) mouseover hints to all skill panel buttons

:lemming: Cap Lemming counts at '999' ('-99' for negative numbers) across the panel to avoid visual bugs when the lem count exceeds this number

:lemming: Add option to show/hide minimap (panel & window resize accordingly)

Sounds
:lemming: Add an "Assign Fail" sound; this plays whenever a skill assignment is attempted, and fails

:lemming: Add sounds for Jumpers and Laserers

:lemming: Add (optional) menu sounds - L2's "OK" when choosing something, and an original sound "Bye" when exiting

:lemming: Add pitch-shifted sound to RR/SI -/+ buttons (modelled on Amiga/Lemmini) - this can be toggled off in options if players prefer silent RR buttons

:lemming: Add pitch-shifted sound to Skill buttons (modelled on Amiga/Lemmini)

:lemming: Add option to choose between "Yippee!" and "Boing" as the Exit sound

Other Updates
:lemming: Allow pressing Up/Down on the Group sign in the Main Menu to stop at the highest and lowest rank respectively, rather than cycling infinitely (this makes it easier to know which order the ranks are in when the names are ambiguous)

:lemming: Add previously abandoned Kill All Zombies talisman

:lemming: Add Mouseover tooltip hints to the dialog-based features (Level Select, Config, Replay Manager, Playback Mode) to assist players with navigating these menus

:lemming: Display level title and save requirement info in Window Caption (also display "Mass Replay Check" when in MRC mode)

:lemming: Fade In Menu screens (in addition to Fade Out) to make between-screen transitions smoother

:lemming: Upgrade keyboard compatibility of all menus/dialogs; they'll respond to [Esc] by closing, etc

:lemming: Make Lemmings shrug and play "OK" sound when a level is cheated (this is just for fun!)

:lemming: Add brand new Menu graphics & layout to differentiate NeoLemmix "CE" from regular NeoLemmix

:lemming: Enlarge scroller graphics

:lemming: Recolour Preview and Postview screen text per-line (modelled on Amiga). The text can also be custom recoloured per-line by adding textcolours.nxmi to the data folder (applies game-wide) or the level pack's root folder (applies to the current level pack)

:lemming: Add level's RR value to Preview, and a "Fewest Total Skills" line to Postview

:lemming: Update welcome screen with pictures, etc

:lemming: No longer display Pickup skill numbers once the pickup has been collected

:lemming: Add customizable lemming names (so that e.g. "Millas" or "Lemminas" appears in place of "Lemmings" wherever it is printed on menu screens, etc)

Included Packs
:lemming: Include full DMA Compilation (alongside Redux and NL Introduction Pack)



Editor Updates
:lemming: Draw skill helpers to Hatches, Pre-placed Lems and Exits

:lemming: Increase maximum lemmings to 999

:lemming: Increase maximum level width to 3200

:lemming: No longer check Auto-start checkbox by default (but remember its state when closing and re-loading the Editor, to suit user preference)

:lemming: Allow Alt + Arrow keys to move selected pieces by a custom amount (specified in the F10 settings menu - the default is 64px)

:lemming: Allow pressing Ctrl + Alt to activate Horizontal-only movement, allowing the selected pieces to be moved only along the X-axis (Ctrl + RMB also works for this)

:lemming: Similarly, allow Ctrl + Shift to activate Vertical-only movement, allowing the selected pieces to be moved only along the Y-axis (Shift/Alt + RMB also works for this)

:lemming: Allow Ctrl + Wheel to scroll the level horizontally, and Shift/Alt + Wheel to scroll the level vertically (when zoomed in)

:lemming: Obviously, add support for any relevant features (skills, etc) that may be added

:lemming: Widen Theme/Style dropdowns for easier reading

:lemming: Enlarge scrollbars for easier access when fine-editing a level

:lemming: Update all menu dropdrowns to display the hotkey to the right (as per normal convention)

:lemming: Condense "Tools" and "Options" to a single menu

:lemming: Move "Play Level" and "Validate Level (which can also have a Ctrl+F12 hotkey)" to the File menu

:lemming: Make Hotkey dialog text easier to read and interpret

:lemming: Remove "Display Tabs" option so that tab display is the default and only option; this may be necessary due to other various UI updates

:lemming: Display all dialogs (Hotkeys, Options, About, Validate Level, etc) centre-screen

:lemming: Move "Clear Backgrounds" button to above the piece scroller for better access

IchoTolot

#1
QuoteAny of the SuperLemmix objects (Radiation, Slowfreeze, Collectibles) can be added, if the community wishes

We already culled Radiation and Slowfreeze back then and I really prefer it to stay this way! As this would also reintroduce timed stuff!

There was a reason I highly encouraged you to go crazy on SuperLemmix, as this way the quite different design philosophies can co-exist indtead of clash all the time.
This seems like the old attempts to turn NeoLemmix more into the SuperLemmini/SuperLemmix direction once again and I am not fond of that.
For this exact reason we got SuperLemmix!
Again, what is the point to have both engines if we put all the SLX stuff into NL once more?

I think I would not be part of such an "Community Edition".

QuoteRe-inroduce Superlemming mode, Add pitch-shifted sound to RR/SI (modelled on Amiga/Lemmini)

These would be more prime examples. ;)

Apart from the pure quality of life improvements I would prefer pure maintenance mode for NL over this!
We have enough stuff to make levels with and at some point a game is overloaded with mechanics anyway - we might already be there already!
  :8():

WillLem

Quote from: IchoTolot on November 22, 2024, 10:39:49 PMWe already culled Radiation and Slowfreeze back then and I really prefer it to stay this way!
...
Again, what is the point to have both engines if we put all the SLX stuff into NL once more?

I think I would not be part of such an "Community Edition".

Quote from: IchoTolot on November 22, 2024, 10:39:49 PM
QuoteRe-inroduce Superlemming mode, Add pitch-shifted sound to RR/SI (modelled on Amiga/Lemmini)

These would be more prime examples. ;)

Quote from: IchoTolot on November 22, 2024, 10:39:49 PMApart from the pure quality of life improvements I would prefer pure maintenance for NL mode over this!

This is good feedback. The more of the above ideas that can be ruled out before I start work on the community edition, the better.

Based on Icho's comments, let's immediately discard Radiation, Slowfreeze, Superlemming mode, and the SLX-exclusive skills. I also think Collectibles should be SuperLemmix-exclusive (especially since their implementation involves significant updates to the GUI throughout the program), so those won't be added either. I've updated the list accordingly.

Meanwhile, I'm happy to make the additional RR sounds optional; a checkbox in the "Audio" tab would solve that.

IchoTolot

Sorry if I came around a bit stong right from the get-go here, but I really think the differences in machanics and design philosophies between NL and SLX should be considered.

Right now both have their place in the community and their audience and if we just merge everything together again in terms of features then why have both?

I would be open for things like "RR sounds" if they are optional to turn on in the menu.  :)

WillLem

#4
Quote from: IchoTolot on November 22, 2024, 11:01:00 PMSorry if I came around a bit stong right from the get-go here, but I really think the differences in machanics and design philosophies between NL and SLX should be considered.

Right now both have their place in the community and their audience and if we just merge everything together again in terms of features then why have both?

To be honest, strong opinions is exactly what I'm looking for at this point; it's important for me to get a specific idea of exactly what people want before I go ahead with anything.

NeoLemmix CE will not be "NL and SLX combined", but rather "NL+", where the "+" is stuff that suits and improves the platform. Yes, a lot of stuff will initially be ported over from SLX code (mainly because the work has already been done!), but I assure you that the two will remain very separate engines and I'll likely continue to put most of my focus onto SLX.

FWIW, if you take a look at the similar list in the SLX topic, you'll see that there is a lot more that has been added and changed in SLX, and that the above list of proposed changes to NL is minimal in comparison.

The end result should be that, if a new user pipes up in 6 months or so saying "can we have an option to do (insert GUI improvement here) in NeoLemmix?", the answer can be possibly "yes" as opposed to definitely "no, NL won't be developed any further".

The answer, in fact, would only definitely be "no" if the suggested change would break NL 12.14 content. That's actually quite a neat guideline to be able to work from.

Armani

my two cents...

I'm like the idea of:
playback mode - When you receive a bunch of replays of your pack from other players, I can see this being very helpful.
increasing width of level select treeview - absolutely love it
purely visual updates - sleeper instead of exiter, customizable icons, new zombie sprite etc...

I'm against:
reviving any features that were culled before
any physics changes



That is a long list and I wonder if we really need to consider this many features into account right now.
Not getting a negative response here shouldn't be a sufficient condition for a feature to be introduced imo.

If there's anyone who want to see a certain new feature in NeoLemmix, they can suggest the feature with some explanations on how it works, how it looks, how it can benefit the platform etc. This is important especially because NeoLemmix players have no idea how these features actually look in practice and weren't involved in the discussions when those features were introduced in SL.

And if that idea gets enough support from NeoLemmix players, then we can start making a list from there. And later we can have polls for each feature on the list and make the final decision. To be completely honest, I prefer pure maintenance mode for NeoLemmix instead of introducing something new. But if you really want to work on NeoLemmix+(something), I think this is the way to go. At least starting from a long list of random features all at once and going through the process of elimination doesn't feel right to me.
My newest NeoLemmix level pack : Lemmings Halloween 2023 8-)

My NeoLemmix level packs(in chronological order):
  Lemmings Uncharted [Medium~Extreme]
  Xmas Lemmings 2021 [Easy~Very Hard]
  Lemmings Halloween 2023 [Easy-Very Hard]

Dullstar

QuoteMake panel hi-res only (regardless of game setting)

I will explicitly say I strongly oppose this. I have always disliked the high-res mode setting and the only reason I haven't complained about it more is because it's also always been optional.

For the most part I pretty much agree with what Icho's said, though there are some specifics (e.g. the release rate sounds) that I'm not opposed to as long as they're optional.



For now I think keep it to QoL changes only (e.g. position-based skill panel hotkeys) and let's not make breaking changes until we need to break compatibility anyway to fix bugs. I think leaving bugs can be potentially dangerous; we probably don't want to return to the level design culture of CustLemm/vanilla Lemmix where glitches were considered fair game and I think the longer major glitches/exploits are known, the more people become tempted to design puzzles with them. Difficult levels were awful back then because you'd never really know if you were just overlooking something or if the level expected you to perform some weird glitch to accomplish something that really shouldn't be possible.

Simon

#7
You still have the newbie stumpers:


And there is the well-tested and GR32-maintainer-sanctioned zoom bugfix that namida refuses to merge.

I don't know what comes after these.

The topic is degenerating into a catch-all wishlist. namida's original point is to state the intent of NL's end of maintenance, and high-level forking recommendations. I'll split the explicit wishes off today/tomorrow.
Done, split from Future of NeoLemmix Development.

-- Simon

WillLem

#8
OK, I probably haven't been clear enough about my intentions here.

NeoLemmix CE, if it ever comes about, is something I'll be doing as a favour to the community. It will NOT be another "whatever WillLem wants" project; I have SuperLemmix for that, and will continue to develop it alongside NeoLemmix CE.

Quote from: Armani on November 23, 2024, 06:45:37 AMI'm against:
...
any physics changes

Quote from: Dullstar on November 23, 2024, 07:45:08 AMlet's not make breaking changes until we need to break compatibility anyway to fix bugs. I think leaving bugs can be potentially dangerous; we probably don't want to return to the level design culture of CustLemm/vanilla Lemmix where glitches were considered fair game

It's currently a given that CE will not introduce any physics changes, even to fix bugs.

CE and 12.14 content should remain mutually compatible indefinitely. Namida has stated clearly that he'd prefer the name "NeoLemmix" not to be used for a new fork if 12.14 content is not playable on that fork. It's possible that, at some point in the future, we might want to start fixing bugs and breaking 12.14 content for the sake of stability, and we may have to rename the program at that point, but that's a bridge to be crossed if it ever comes. We're nowhere near that at the moment.

Quote from: Armani on November 23, 2024, 06:45:37 AMIf there's anyone who want to see a certain new feature in NeoLemmix, they can suggest the feature with some explanations on how it works, how it looks, how it can benefit the platform etc.
...
And if that idea gets enough support from NeoLemmix players, then we can start making a list from there. And later we can have polls for each feature on the list and make the final decision ... At least starting from a long list of random features all at once and going through the process of elimination doesn't feel right to me.

Maybe we can find a balance of approaches here. Clearly, there are a significant number of features being proposed, and it's probably a bit too overwhelming to process it all at once. Slow and steady is definitely the right way to go, and since it will likely take several months to pull features across, test them, etc, the likelihood is that nothing will happen without significant enough discussion and testing anyway.

On the other hand, these are mostly features that have already been requested (by NL users), so it wouldn't make sense to arbitrarily wait for another request for the same feature. And, I clearly stated at the start of the above post:

Quote from: WillLemall of these have been implemented and tested in SuperLemmix, but their implementation in NeoLemmix might end up being slightly different. So if, for some reason, you don't like the SuperLemmix version of an idea, bear in mind that it can be always be redesigned/reformatted for inclusion in NeoLemmix.

So, I've already addressed your concern; features can absolutely be discussed, tested, redesigned if necessary, etc.

The recently-implemented "no lemmings remain" behaviour is a perfect example of a feature that is very different in NL to its implementation in SLX. NL provides 3 options to the user, whereas in SLX I assigned one option to Classic Mode and a blend of the other two options as standard behaviour.

The point here is that I'm very aware that features in NL may need to be implemented differently, and that community preference/feedback should drive that.

With that said, I don't think it's necessary to discuss every single proposed feature individually. Some are absolute gimmes (e.g. click the 'R' to cancel the replay), others may need extensive discussion before they're implemented (e.g. hi-res only panel).

It's probably best, then, at this point, to view the above list as "which ones do we need to discuss?" rather than "which ones should we implement or not?" With that in mind, now's the time to list the ones you'd like to discuss. Then, for those, we can make individual topics.

Quote from: Armani on November 23, 2024, 06:45:37 AMI'm against:
reviving any features that were culled before

Yes, let's agree not to do that. Let's also agree not to include any SLX-exclusive skills, objects, etc, that would significantly impact the game. We all seem to agree that it's best to focus on QOL features only.

Quote from: Dullstar on November 23, 2024, 07:45:08 AM
QuoteMake panel hi-res only (regardless of game setting)

I will explicitly say I strongly oppose this. I have always disliked the high-res mode setting and the only reason I haven't complained about it more is because it's also always been optional.

This, we would need to discuss. A hi-res only panel has many benefits beyond just how it looks, and is definitely worth considering.

Let's not get into it now, I'll add this to a list of things we'll need to discuss and topics can be made later.

Quote from: Simon on November 23, 2024, 08:07:10 AMReplay on restart: Confuses/annoys new players, they don't click air

This has been addressed with an option to not replay after restart (whether or not it's default behaviour may need to be discussed briefly) and the clickable 'R' icon. Further discussion is probably needed though, so I've added this one to the discussion list.

Quote from: Simon on November 23, 2024, 08:07:10 AMSplat ruler: Newbies think full height is for walker, incl/excl ambiguity

Another one to discuss.

Quote from: Simon on November 23, 2024, 08:07:10 AMAnd there is the well-tested and GR32-maintainer-sanctioned zoom bugfix that namida refuses to merge.

This one's a good example of a gimme; it's definitely an improvement, we don't really need to discuss it. My working copy of NL already has this fix, so CE will definitely have it.

WillLem

#9
Armani's correct; it's quite a big list. We do need some way of processing the proposed features that's fair and offers opportunity for discussion, but also gets through some of the "gimme" items quickly.

I'm tempted to put each group of features (i.e. "Options Menu", "Zombies", "Skill Panel") into its own topic rather than each individual item. This might make it easier to identify the features that need to be discussed, and keeps everything together and relevant.

(Even so, that's still 10 separate new topics and a lot of features to get through!)

Another approach would be to tackle one group at a time and release an RC for community approval at each stage, localizing the discussion to this topic wherever possible (breakout topics might still be necessary).

Suggestions welcome.

WillLem

Just giving this a bump. Not that there's any rush, but it would be good to get an idea of how to proceed.

Would people prefer to discuss everything first before any action is taken, or would people prefer experimental/RC builds to play with between decisions?

IchoTolot

Quote from: WillLem on November 26, 2024, 01:38:42 PMJust giving this a bump. Not that there's any rush, but it would be good to get an idea of how to proceed.

Would people prefer to discuss everything first before any action is taken, or would people prefer experimental/RC builds to play with between decisions?

I would suggest discussing similar parts first and after that test them through an experimental/RC build and make a final decision. Then move on to the next.

There could be cases where we can already make decisions through a discussion and you won't need to waste any time coding.

jkapp76

I don't know how easy the work would be, but you could start with just an initial 1.0 release that only adds the uncontested improvements from SLX. The menu fixes, the icons... stuff like that.
...Jeremy Kapp

WillLem

Quote from: IchoTolot on November 28, 2024, 04:08:58 PMI would suggest discussing similar parts first and after that test them through an experimental/RC build and make a final decision. Then move on to the next.

Agreed, I think this is best as well. Ideally, I want to create as few topics as possible, so I'll try to group features as much as possible and only give individual topics to the ones that have already generated discussion (e.g. hi-res-only panel) and large features that might warrant further discussion.

Quote from: jkapp76 on November 28, 2024, 05:57:06 PMyou could start with just an initial 1.0 release that only adds the uncontested improvements from SLX. The menu fixes, the icons... stuff like that.

Yeah, I thought about doing something like this; implement only the very basic UI fixes that users are unlikely to have an issue with, or that are absolute gimmes (e.g. clicking a Replay event to jump to that frame), and then leave discussion to only the stuff that people are likely to want to have input on.

The only issue with that approach is that it does involve an initial amount of work; even if it's only a couple of hours, that time might end up being wasted if people don't use Community Edition, or don't at least get involved in the later discussions.



Anyway, it seems worth making some sort of start.

A mixed approach seems best here. I'll prepare an initial release with some basic upgrades and UI improvements as per jkapp76's comment, and open a topic for a few of the features that are likely to need discussion before they're implemented as per Icho's.

I'm not likely to begin anything until this weekend, so there is a day or two for others to add to the discussion in the meantime.