Roadmap for CE 1.0

Started by WillLem, January 21, 2025, 01:51:12 PM

Previous topic - Next topic

0 Members and 4 Guests are viewing this topic.

WillLem

Upcoming Features for CE 1.0

It's probably a good idea to make a start with CE soon. The very first edition will feature only "gimmes" that users are likely to either benefit from, or not notice.

Just in case my idea of a "gimme" differs from yours, here's a full list what I intend to implement for NeoLemmix CE 1.0. It seems like a lot, but the features are all relatively small and easy to implement, so they're the best ones for starters. I'll take my time with it and regularly post progress updates to keep everyone in the loop and offer plenty of opportunity for feedback.

I've added the Clamoji ( :8(): ) to the topics I think might be somewhat controversial at this early stage, and will give extra time for feedback before adding these. And of course, anything without the Clamoji is also still open for discussion and feedback.

Features already implemented in CE will be marked with a Gold Talisman ( :tal-gold: ), and those currently in progress or not yet started will be marked with a Walker lemming ( :lemming: ).

Please note: This will likely take several weeks. You have plenty of time to give feedback, and it WILL be taken into account if provided. If any issues are raised regarding any feature, that feature will not go ahead until any discussion around it is resolved. On the other hand, your silence will have to be interpreted as "go ahead" so that CE can be moved forward.

Please also note: Where possible (and not otherwise noted), anything that is optional will be set to the current NL status quo by default.

Lemming States

:tal-gold: Sleeper lemming state - this state is entered when time runs out and the lemming reaches the exit. It's a mostly aesthetic state to replace the buggy-looking cluster of exiting lems, but it's also useful for simulating exit behaviour as these lems cannot be assigned to, and are deducted from the lemming count

Options Menu

:tal-gold: Add option to deactivate helper overlays - reducing UI clutter should always be possible, helps to onboard newbies.

:tal-gold: Add option to set the number of skill queue frames - 0 is essentially "off", 15 is the default (status quo), up to a maximum of 20.

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

:tal-gold: Re-word 'Don't Replay After Backwards Frameskips' as 'Replay After Backwards Frameskips' and check it by default (every effort will be made to preserve current user option, but it may need to be re-set following this change)

:tal-gold: Add option to Replay after Restart (or not) -  a frequently requested feature which might become unnecessary again in a future update (if we can improve Replay UI)

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

:tal-gold: Hotkey Config - Add 'Restore' (restores previously saved layout), 'Cancel' (discards changes), 'Save & Close' and 'Clear All Keys' buttons

:tal-gold: Hotkey Config - Add text label (rather than a popup) to let users know when 'Find Key' is listening for a keypress

:tal-gold: Hotkey Config - (Bugfix) Allow typing "-" into the Time Skip text input without resetting the cursor

Replay Features

:tal-gold: Updates to Replay Editor:
* Add ability to double-click a replay event to jump to that frame
* Add ability to delete all future assignments for a particular lemming (from the currently-selected event onwards)

Level Select Menu

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

:tal-gold: Add "Reset Talismans" button, so players can reset their talisman progress on a per-level basis (very handy for level testing, and when re-playing an already-completed pack)

:tal-gold: Add "Level Search" capability

:tal-gold: Add "Edit Level" button - opens the currently-selected level in the Editor

:tal-gold: Increase width of, and text size in, Level Select treeview

Other Updates & Bugfixes

:tal-gold: Fix cursor zoom bug

:tal-gold: Always show total number of lemmings under cursor regardless of priority/type (i.e. zombie, neutral)

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

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

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

:tal-gold: Lemmings shrug and "OK" sound is played when a level is cheated (this is just for fun!)

:tal-gold: Add placeholder Menu graphics & layout to differentiate NeoLemmix "CE" from regular NeoLemmix - Please note: the current updated graphics are placeholders so that CE 1.0 is immediately visually different from NL 12.14. A topic will be made for updating the main menu in due course, where we can discuss gfx, layout, etc in more depth, to be applied in a future update.

:tal-gold: Update welcome screen with pictures, etc (further updates may be made to the Welcome Screen in the future)

Editor Updates

:tal-gold: The SLX Editor (a more advanced version of the NL Editor) will be included with CE. It has an option to set the controls to "NeoLemmix Mode" so that it can be used seamlessly with NeoLemmix, and offers new features such as Piece Search, Custom Hotkeys, Grid Lines for Snap-to-Grid mode, and more.

Current ETA for NL-CE 1.0-RC is End of Jan 2025.

WillLem

#1
Progress update

Features marked with a Gold Talisman ( :tal-gold: ) are fully implemented and ready for release.

IchoTolot

Comments:

QuoteRe-word 'Don't Replay After Backwards Frameskips' as 'Replay After Backwards Frameskips' and uncheck it by default (every effort will be made to preserve current user option, but it may need to be re-set following this change)

The current standard should be 'Don't Replay After Backwards Frameskips' turned off as I recall. So this should be a change of standard as I understand it.

The standard option then should always be 'Replay After Backwards Frameskips'. If the player skips backwards, it is really bad that the standard is then to not save their inputs in a replay. Player input should not be deleted by accident!
Imaginge you discover Backwards Frameskip by accident and then all your progress is lost. That would be a great source of rage.

QuoteAdd "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!

This should come with an "Are you sure?" promt.


QuoteAdd an "Assign Fail" sound; this plays whenever a skill assignment is attempted, and fails

1st: I think this should also be able to be turned off. Especially in levels where I might needs to spam the skills a bit it could get on someones nerves. Also when you want to precisely place blockers as close together as possible you might run into a ton of extra sounds here as well.

2nd: When skill queuing is on and I assign a skill that can be queued and excuted in a few frames - does it count as failed in that moment? As then it should not count as failed.

QuoteAdd sounds for Jumpers and Laserers - Jumper sound is the one from L2, see SLX for Laserer sound

Could you mabe directly attach the soundfiles?

Also I don't think those should have extra sounds. If you need to spam these in a level it can really get on your nerves!
Currently skill sounds are very limited (bombers,stoners and the disarmer) and I think that is a good thing.

The most controversial thing I see here: Don't overload the player with 1000 sounds! Be it the skill panel or the skills themselves!

QuoteAdd pitch-shifted sound to Skill buttons (modelled on Amiga/Lemmini) - this could also be made optional if people dislike it

100% optional please and it being turned off as standard.


QuoteAdd pitch-shifted sound to RR/SI -/+ buttons (modelled on Amiga/Lemmini) - this can be toggled off in options if players prefer silent RR buttons - this will be "not silent" by default

I have no problem with SLX going the noisy route, but I think here the standard should again be silence.


QuoteChange cursor to Red when in normal Replay mode, and Blue when in Replay Insert mode - another visually very noticeable one, but necessary for adding clarity to these modes. Could be made optional if people dislike it, or the cursors themselves could be redesigned (e.g. with scissor icon, etc).

I am in favor here, but you might need to test this as the red and especially blue could be hard to see against some tilesets - so choose the colors with care. A total redisign would need to be tested first.

Simon

#3
Quote:8(): 'Replay After Backwards Frameskips' and uncheck it by default

Like Icho, I recommend to check it by default.

The default should be that rewinding preserves the assignments, and that you must cut the replay explicitly to erase the assignments. The newbie confusion doesn't come from this default; NL confuses the newbies because NL doesn't tell them how to cut the replay. You'll fix this confusion elsewhere.

Quoteevery effort will be made to preserve current user option, but it may need to be re-set following this change

Right. It's nice to heed the user's old setting when you reword the boolean option to positive. If you can't heed that, it's okay to fall back to this option's default on first run. The default will be that rewinding keeps the replay, which matches most people's settings.

Anyway, I'm happy that you brought this up in the first place. UI is important and negatively-worded checkboxes are surprisingly confusing.

-- Simon

Armani

I'd love to see everything in the level select menu. 8-)

Animate Replay "R" icon: I don't want an animation on that one. I don't mind it being clickable though.

Add an "Assign Fail" sound, Add pitch-shifted sound to RR/SI -/+ buttons: please no. I can see them being annoying very often. If Assign Fail sound doesn't apply to queuing skill as ichotolot said, it would be better but still it's redundant.

Will there be a RC version? I'm having a hard time imagining what it will look like after some of these features are implemented.
e.g. deactivating helper overlays, mouseover hints to all skill panel buttons

I remember you said you are going to implement a feature only if more than certain % of the people agree and 75% should be the absolute minimum in a poll. Is that still valid?  ???
My newest NeoLemmix level pack: Holiday Lemmings 2024 8-)
Xmas themed collaboration pack with Mobiethian :D

My other NeoLemmix level packs(in chronological order):
  Lemmings Uncharted
  Xmas Lemmings 2021
  Lemmings Halloween 2023

WillLem

#5
Quote from: IchoTolot on January 21, 2025, 05:04:19 PMThe standard option then should always be 'Replay After Backwards Frameskips'. If the player skips backwards, it is really bad that the standard is then to not save their inputs in a replay. Player input should not be deleted by accident!

Yes, agreed. I've updated the list.

Quote from: IchoTolot on January 21, 2025, 05:04:19 PMThis should come with an "Are you sure?" promt.

Of course!

Quote from: IchoTolot on January 21, 2025, 05:04:19 PMRe: Assign Fail Sound
...
1st: I think this should also be able to be turned off
...
2nd: When skill queuing is on and I assign a skill that can be queued and excuted in a few frames - does it count as failed in that moment? As then it should not count as failed.

It can be optional for sure.

Regarding skill queueing, that's a very good point. It's likely that the queueing logic can be harnessed and applied to the assign fail sound. Now investigating; downgraded the completion status of this feature to Silver.

Quote from: IchoTolot on January 21, 2025, 05:04:19 PMCould you mabe directly attach the soundfiles?

Done, see the features post.

Quote from: IchoTolot on January 21, 2025, 05:04:19 PMThe most controversial thing I see here: Don't overload the player with 1000 sounds!#

Replied to this in its own topic. I think the sound scheme in general warrants this.

Quote from: IchoTolot on January 21, 2025, 05:04:19 PMRe: Cursor colours for Replay / Replay Insert:

I am in favor here, but you might need to test this as the red and especially blue could be hard to see against some tilesets - so choose the colors with care. A total redisign would need to be tested first.

We have plenty of time to test this out before we settle on a final version. We can even differentiate them with symbols as well (scissors, etc). For the first release, I'll implement them as they currently are and we can go from there.

Quote from: Simon on January 21, 2025, 06:20:42 PMI'm happy that you brought this up in the first place. UI is important and negatively-worded checkboxes are surprisingly confusing.

Yes, I'm having a look at the config menu and seeing if any other options can be reworded to "enable this" rather than "disable this". In some cases it might be more appropriate to keep the negative wording (e.g. Disable background images, where the "active" choice is probably to disable them).

Quote from: Armani on January 21, 2025, 06:43:35 PMAnimate Replay "R" icon: I don't want an animation on that one. I don't mind it being clickable though.

OK, let's make the animation optional for version 1.0, and switch it on by default; give it a try, turn it off if it's an issue. If feedback following 1.0 is that most people have turned the animation off, we can remove it. For this particular feature, I'd rather take that approach than just not implement it.

Also, this topic addresses your concerns regarding the sounds.

Quote from: Armani on January 21, 2025, 06:43:35 PMWill there be a RC version? I'm having a hard time imagining what it will look like after some of these features are implemented.

Yes, an RC is a good idea. It feels a bit less "official" and we can try some of this stuff out without worrying it will necessarily all go ahead into the final release.

The first release, then, will be 1.0-RC.

Quote from: Armani on January 21, 2025, 06:43:35 PMI remember you said you are going to implement a feature only if more than certain % of the people agree and 75% should be the absolute minimum in a poll. Is that still valid?  ???

Absolutely. In the event of a poll, we should set a minimum standard of 75% for "go ahead". Here's the process as I imagine it:

Uncontested features will go ahead as planned. If a feature gets enough (in this community, > 1) "no thanks" comments, I'll either remove the feature from the list or create a topic. We'll then discuss it, maybe try it out in an RC if appropriate, and then ultimately poll it to see what the consensus is. That seems to be the fairest way to proceed.

WillLem

EDIT: Fixed links in the previous message

namida

Quote from: WillLem on January 21, 2025, 01:51:12 PM:lemming: Sleeper lemming state - this state is entered when time runs out and the lemming reaches the exit. It's a mostly aesthetic state to replace the buggy-looking cluster of exiting lems, but it's also useful for simulating exit behaviour as these lems cannot be assigned to.
Make sure this plays nicely with custom lemming sprites, including those that have not been modified to account for it. EDIT: And also that the time might run out while lemmings are mid-exiting.

Quote from: WillLem on January 21, 2025, 01:51:12 PM:lemming: Add option to deactivate skill queuing - another one that should definitely be optional as it's input-related.
Keep in mind that the assignment windows for some skills have been set under the assumption that skill queueing exists, in particular, niche transitions to Shimmier. Even though it's technically UI, I would argue this one leans a bit too much into physics to be messing with.

Quote from: WillLem on January 21, 2025, 01:51:12 PM:lemming: Hotkey Config - Add Reset, Cancel and Save & Close buttons
There's already reset at least (or rather, three resets - one for each default layout option).
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)

Armani

QuoteUncontested features will go ahead as planned. If a feature gets enough (in this community, > 1) "no thanks" comments, I'll either remove the feature from the list or create a topic. We'll then discuss it, maybe try it out in an RC if appropriate, and then ultimately poll it to see what the consensus is. That seems to be the fairest way to proceed.

Yeah. That sounds fair enough. Thanks for clarifying it and your works on CE :D
My newest NeoLemmix level pack: Holiday Lemmings 2024 8-)
Xmas themed collaboration pack with Mobiethian :D

My other NeoLemmix level packs(in chronological order):
  Lemmings Uncharted
  Xmas Lemmings 2021
  Lemmings Halloween 2023

WillLem

#9
Quote from: namida on January 21, 2025, 08:36:46 PMMake sure this plays nicely with custom lemming sprites, including those that have not been modified to account for it.

As it happens, at least 5 of the custom sprite sets already have a Sleeper sprite in the SLX styles, so we could move those over.

Beyond this though, what would you suggest in terms of accounting for unmodified sets?

Quote from: namida on January 21, 2025, 08:36:46 PMAnd also that the time might run out while lemmings are mid-exiting.

This can be solved by allowing Exiting lems to transition to Sleeper; it was implemented in SLX for a very short time before I decided that any lem that has begun exiting should finish, and count towards the save req. Obviously that isn't an option for NL-CE, but transitioning a lem mid-exit-animation is still viable, and represents the actual result of that action in terms of save req.

Quote from: namida on January 21, 2025, 08:36:46 PMKeep in mind that the assignment windows for some skills have been set under the assumption that skill queueing exists, in particular, niche transitions to Shimmier. Even though it's technically UI, I would argue this one leans a bit too much into physics to be messing with.

This could be accounted for by specifically allowing Shimmier assignments to be queued. Saying that, I had a quick look and couldn't see anything specifically linking Shimmiers (i.e. as opposed to just any skill) to queued assignments. I'll have a closer look when I get around to this specific feature, but if you happen to know whereabouts it is in the meantime I definitely think this option is a worthwhile addition, given how aggressively it interprets user input.

Quote from: namida on January 21, 2025, 08:36:46 PMThere's already reset at least (or rather, three resets - one for each default layout option).

"Reset" in this context means "Reset to whatever layout was active when the config form was opened" as opposed to resetting to one of the preset layouts. It's for if users make changes but then change their mind; rather than having to cancel and then re-open, they can reset instead.

namida

Quote from: WillLem on January 21, 2025, 11:04:27 PMBeyond this though, what would you suggest in terms of accounting for unmodified sets?
I'm on the fence between "fall back on the frozen-exiter behavior" vs "use the default style Sleeper sprite to fill the gap". I don't think this is significant enough to implement an option for; just pick one or the other and go with it.

Quote from: WillLem on January 21, 2025, 11:04:27 PMThis could be accounted for by specifically allowing Shimmier assignments to be queued. Saying that, I had a quick look and couldn't see anything specifically linking Shimmiers to queued assigments. I'll have a closer look when I get around to this specific feature, but if you happen to know whereabouts it is in the meantime I definitely think this one is worthwhile, given how aggressively it interprets user input.
It's not that any special behavior is explicitly coded, but rather that there's a lot of scenarios where there is only a one frame window to assign a shimmier (eg. slider->shimmier transition), and skill queueing is relied on to make this practical - even with framestepping, it's not the most convenient assignment to make otherwise.
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 January 21, 2025, 11:08:31 PM"use the default style Sleeper sprite to fill the gap"

This :thumbsup:

Quote from: namida on January 21, 2025, 11:08:31 PMIt's not that any special behavior is explicitly coded, but rather that there's a lot of scenarios where there is only a one frame window to assign a shimmier (eg. slider->shimmier transition), and skill queueing is relied on to make this practical

I see. In that case it would be easy enough to pass Shimmier assignments through to the skill queue as an edge case; in fact, it's more or less necessary, for the very reason you've stated. In SLX I've added a "Dangler" state to increase assignability; it's mainly Slider > Shimmier that causes issues. Climbers are generally OK.

Maybe the option could be to set the number of frames a skill should be queued for on a 0-15 scale, as opposed to simply turning it on or off (still allowing for Shimmier assignments, that is).

WillLem

#12
Progress update

Changes to the config menu:

• Added option to deactivate helper overlays - this applies only to the overlays shown at the start of the level, and the pre-assigned hatch icons. CPM, fall distance ruler, lemming cap counts and all other UI helpers are still displayed.

• Added option to deactivate skill queuing (Shimmier assignments are queued regardless of setting).

• Added more auto-naming options (i.e. "Username + etc".) for Replay files and widened the dropdowns for easier reading.

• Re-worded 'Don't Replay After Backwards Frameskips' as 'Replay After Backwards Frameskips' and checked it by default. Any existing user option should be preserved; be sure to copy your settings over before starting NL-CE for this to work, otherwise just set it again (it's probably worth taking a fresh look at the config menu anyway tbh).

• Added option to Replay after Restart (or not) - if unchecked, the replay is cleared when restarting the level. It's also cleared when exiting the level and then re-loading it from preview/postview.

• Added option to load either the Next Unsolved Level, or the Last Active Level. The setting is observed (and therefore the relevant level is loaded) when the Main Menu screen is active; this is so it's still possible to browse through the level pack from the Preview screen.

Updated the features list to show what's completed.

WillLem

I'll likely re-work the list of features for 1.0 tomorrow (too tired to do it now). It's probably best to reduce it by about half, and release an RC sooner. That way, people have less new features to process. Less is more at this stage.

WillLem

#14
I've revised the features list. I was considering delaying the implementation of the sounds, but discussion seems to be fairly focused on that so it's probably worth going ahead with those.

To clarify once again: none of this is final. We'll test the features in an RC, keep the ones we like, change/remove the ones we don't.