[DISC] Make 'Replay Mode' a single-mode feature in NeoLemmix CE

Started by WillLem, July 14, 2026, 09:47:38 PM

Previous topic - Next topic

Simon and 3 Guests are viewing this topic.

WillLem

NeoLemmix CE currently presents 2 different Replay 'Modes', detailed as follows.

Normal (Red 'R') Mode

• Clicking with the left mouse button anywhere whilst this replay mode is active will cancel the replay
• When the replay is cancelled, all future actions for all lemmings and all release rate changes are erased
• This mode is activated either by restarting the level, or rewinding to some point before the most recent action
• This is the standard mode

Replay Insert (Blue 'R') Mode

• This mode allows actions to be 'inserted' into the replay on any frame that doesn't already contain an action
• Clicking in air does not cancel the replay
• Clicking a lemming does not cancel the replay, but an action can be assigned to that lemming if one is selected in the panel (and the lemming is action-eligible)
• This mode can only be cancelled by explicitly cancelling out of replay mode, either by using the user-configured hotkey (C by default), or by clicking the blue 'R' icon in the skill panel (NeoLemmix CE only)
• As per Normal Mode, when the replay is cancelled, all future actions for all lemmings and all release rate changes are erased
• This mode is activated via a user-configured hotkey only (O by default). That same hotkey will return the player to Normal Mode if Replay Insert Mode is active

The main purpose of Replay Insert Mode is to allow actions to be added to a replay without losing future replay data. It can also prevent data loss by accidental clicking, so is useful when navigating through a replay in general.

It is arguably the only worthwhile replay mode, then. As long as we provide the player with easy ways to cancel out of it (making the 'R' clickable is enough, but we could perhaps do even more), it renders the 'Normal' mode obsolete.

I suggest the following:

1) Get rid of Normal (Red 'R') Mode and replace it entirely with Replay Insert Mode. We then just have 'Replay Mode', and we can decide on a set of behaviours.

2a) Add a 'click air to cancel replay' option so that users can choose whether they want to click air to cancel, or use the panel 'R' and/or a cancelling hotkey

or

2b) Use RMB to cancel when air is clicked rather than LMB. We may not need the option if we do this.

3) Tighten up the specifics of Replay Mode based on a single-mode model rather than maintaining 2 separate modes.

Thoughts?

Simon

This is the follow-up design to the successfully implemented [✓][SUG][PL] Insert Mode: Same-Lemming-Overwrite.

Quote from: Simon on June 14, 2026, 07:19:29 PMSeveral times, I wanted to cut during insert mode by air click. Neither option allows cutting by air click. I had to exit insert mode and cut.

I conjecture that ultimate truth will be found in merging regular replay mode with insert mode.

Quote from: WillLem on June 14, 2026, 10:47:26 PMYou're probably right, but let's start a new topic for this.

Quote from: Simon on June 21, 2026, 10:26:38 PMIn my stream today [June 19th, 2026, about the Level of the Year 2025 nominations], again I wanted to be in insert mode by default. I imagine the following development progress.

  • I implement always-insert in Lix.
  • I playtest that on livestream with Nepsterlix, Clamlix, or Rubix's pack.
  • I'll summarize results. Maybe I'll have confused myself with always-insert.
  • I'll make a new topic about NL-CE.

Of course, other forumers are free to make a case for always-insert in CE before I finish my investigation in Lix. If you think that I'm on the right track, spearhead the discussion, I'll be happy. And if you think that I'm insane, make your case against it.

Quote from: WillLem on July 14, 2026, 09:25:16 PMWe can also consider simplifying Red and Blue replay modes to a single replay mode which behaves how most players would expect it to; if we do this, though, I'd want to make 'click air to cut replay' optional.

-- Simon

Simon

Existing implementation in NL-CE 1.1.2 is really three different modes, but only two are accessible during play, and you choose which two in the user options.

  • Normal, red R:
    Air clicks cut the global future. Assignments cut the global future, then add the assignment. (The cutting of the global future will have removed any existing assignments on the same physics update as the new assignment. Therefore, this new assignment will never collide.)

  • Insert, blue R, keep everything:
    Air clicks do nothing, they preserve all future. Assignments preserve all future, even the same lemming's future, and insert the assignment. If the assignment would be at the same physics update as an existing assignment, instead nothing happens, i.e., the replay will reject the new assignment.

  • Insert, blue R, cut same lemming:
    Air clicks do nothing, they preserve all future. Assignments preserve other lemmings' futures. Assignments cut the same lemming's future, then insert. This can overwite a same-lemming same-physics-update assignment. If the assignment would be at the same physics update as an existing assignment to a different lemming, instead nothing happens, i.e., the replay will reject the new assignment.

You can switch between the red R and blue R during play.

You must change your user options to switch between the currently possible behaviors of the blue R, i.e., to switch between blue-R-keep-everything and blue-R-cut-same-lemming.

None of the blue R modes allow different-lemming overwriting. You must ditch that explicitly from the replay editor. That's good, because NL doesn't allow (as a physics rule) two assignments to two different lemmings at the same physics update. This prevents accidental deletion of different lemmings' futures.

I'll write a response to your suggestions these days.

-- Simon

WillLem

Quote from: Simon on July 14, 2026, 10:20:48 PMYou must change your user options to switch between the currently possible behaviors of the blue R, i.e., to switch between blue-R-keep-everything and blue-R-cut-same-lemming.

Good shout. If we merge the replay modes, we can get rid of this option.

I look forward to your feedback!

Simon

Little time, the hunches are:

The shift in design will be away from {different modes for different tasks} toward error prevention/recovery. E.g., you value how blue R cannot accidentally cut global future. Error prevention may be via modes again, or via undo, or via something.

{LMB into air to cut global future} is accident-prone and obscure. But RMB fixes neither of these problems, and it clashes with many RMB habits where click is no-op: priority invert, scrolling, ...

More when I have time.

-- Simon

Simon

One crossroads in the design is: Should cutting the global future be undoable?

You can decide against this for code complexity. Or for difficulty of making understandable UI for it. Or you can allow it, but undo has only depth 1, i.e., you have the most recent previous replay in memory for restoration. Or you can make a full undo-redo stack, either by storing full replays, or by storing the modifications.

Reason behind undo: Powerful actions with powerful undo is nicer than making it hard to reach the sharp knifes that you need all the time. But it remains hard to say how commonly the knife is needed.

UI concern: Undo is one extra button, and it's fundamentally different from rewind. Undo/redo would even be two extra buttons. Rewind is travelling along the 3rd dimension, replay editing is working in the 4th, and an undo stack will be the 5th. It feels only one level below the strength of git rebase.

* * *

If cutting the global future won't be undoable, then I sympathesize with your preference to guard against misclicking air.

I don't think moving the airclick to RMB is good. Reasons as yesterday: RMB airclick clashes with priority invert (where a lone RMB click/hold affects lemming filtering only), it clashes with scrolling (where a lone RMB click/hold does nothing), it's undiscoverable, and it's unconventional (in Lemmings; many other games have RMB canceling).

One idea is to still have two modes, switchable during play:

  • Clicking a lemming first cuts the future of that lemming, then, if no clash with different lemming, inserts the assignment. Airclicks cut the global future. This is can be the default mode.
  • No cutting whatsoever. Clicking a lemming never cuts, and it inserts an assignment only if it doesn't clash with any lemming, same or different. Air clicks do nothing.

UI concern: Modes are hard to discover. Modes annoy the user when he doesn't understand them completely. Hard to make icons for these modes. I feel like colored Rs won't cut it; the symbol for no-cut mode would rather be struckthrough scissors.

Require something really explicit to cut the global future? Comes at cost of breaking consistency with many Lemmings games, with Lix, but the idea isn't entirely off the table. Hard to sell this to users who rarely insert, but who rewind often and already know not to LMB. The ice is thin.

* * *

Abstract background reading:
Preventing User Errors: Avoiding Unconscious Slips, 2015
Preventing User Errors: Avoiding Conscious Mistakes, 2015
Undo vs. Confirm, when to use what, 2025
Forgiveness Principle: Designing Undo, Confirmation, Error Recovery, 2026

-- Simon

WillLem

I do like the idea of an Undo system. Save the current replay in memory when making a destructive change, allow user to revert if they make a mistake.

Discoverability is the issue. We often lose sight of the fact that this is, after all, a game. Yes, it's become a fairly powerful piece of replay editing software as well. Where do we draw the line?

The goal here is to simplify the replay feature, not make it more complex. A single mode, let the user choose whethor or not clicking air cancels the replay (by default, it shouldn't), keep it to LMB (I agree that RMB is a bit too obscure), maybe bring more attention to the 'Cancel Replay' hotkey somehow - make it a button and have done with it?

More input from other users would be good. People don't tend to speak up until it's already been implemented and there's a problem, so we might have to just make some calls and go with it.

Simon

All right, no undo for now, and the difference between the two surviving modes (airclick cuts global future vs. airclick does nothing) becomes a user option. There will be no mode toggling during play. Good riddance if it turns out well. You get to remove at least one hotkey (the mode toggling) and some iconography.

I think I like it.

Quoteclicking air cancels the replay (by default, it shouldn't)

No, I recommend that you keep the default that airclicks cut the global future.

Argument 1: Even though most users know about this, nobody has complained that it does too much damage in CE 1.1.2 or before. Replaying will become more powerful, but, at the same time, it becomes less destructive because assignments will cut only the assignee's future, not the global future.

Neutral observation: Inserting is advanced. Let's say 30 % of users will insert. If you anticipate that you will insert a lot and you fear about destruction, you'll activate the option for yourself. If everybody were an advanced user, I'd be 50:50 about the default. But that's not the argument.

Argument 2: Another 30 % of users will continue to play with replay mode, but not with insert mode. They'll never LMB into the map until they want to cut. The default shouldn't remove a useful shortcut (global-future-cutting air click) that does no damage for them: They won't LMB into the map for other reasons.

Argument 3: The final 40 % is that invisible portion of users. You rarely catch a twitch stream of them. They don't want replay, they'll always solve from scratch. Replaying annoys them. They always run default options. Don't remove the main way of cutting the unwanted replay from them!

QuoteMore input from other users would be good.

Yes, please post. Even (and especially) if you never use insert mode!

Do you click air to stop the replay? Or do you use a hotkey or click the R in the panel?

-- Simon

IchoTolot

I have no energy to read everything here as I think the current system is fine, but here is my usecase reagarding the last question:

- I always click air to stop the replay. If this isn't the standard I would become confused and frustrated. I can see the option of turning it of useful though.
- For shorter and medium sections: I often rather just replay the section than using the blue "R" as I tend to play faster than I editing the history by now.
- For longer sections I do use the blue "R", which is only a minority of levels though.

Guigui

My 2 cents.

Replay annoyed me the first week I spent with the game.
Then I understood how it works and use it at all the time.

Never tried insert replay though, mainly because I do not even know how to trigger it. Also I have trouble imagining how inserting an assignation may not break the rest of the coming replay. Though about this point I trust everyone saying this is actually useful, so I plan on trying it when I finally find how to trigger it !

Finally I am very used to airclick for replay cancel and never use anything else, please do not remove it.

On another note, sorry if it is not the right place to mention it, I'd appreciate if replay carries when using the editor.
To be clearer : create a level, playtest it, exit to editor to make changes, play test the level again and find your previous replay ready for you.

Save One level pack : do you have what it takes to save one Lemming ?
16 levels of medium-hard difficulty.
https://www.lemmingsforums.net/index.php?topic=7216.0

Bravo jolie Ln, tu as trouvé : l'armée de l'air c'est là où on peut te tenir par la main.

WillLem

Quote from: Simon on Today at 04:17:27 PMI recommend that you keep the default that airclicks cut the global future.

This seems to be the consensus, so yeah let's keep this as the default. It's what users have come to expect anyway, particularly those that don't use insert mode.

I almost exclusively use insert mode, so I would toggle the option off. Here's why:

Quote from: Simon on Today at 04:17:27 PMThe default shouldn't remove a useful shortcut (global-future-cutting air click) that does no damage for them: They won't LMB into the map for other reasons.

Not so! There is at least one more reason to airclick, and that is to advance gameplay by 1 frame whilst paused. Sometimes, this is done after rewinding, and with no intention to erase the global future. This is one of the main reasons I engage insert mode, and don't want airclicks to cut the replay.

I strongly suspect that those who don't sympathise with this only use either non-mouse hotkeys or the dedicated panel buttons to framestep.

Quote from: IchoTolot on Today at 05:37:37 PM- For shorter and medium sections: I often rather just replay the section than using the blue "R" as I tend to play faster than I editing the history by now.
- For longer sections I do use the blue "R", which is only a minority of levels though.

Would you mind always having to airclick to cancel the replay? (i.e. the proposed 'single replay mode' would no longer cut the global future on lem assigments or RR changes).

Note that airclick-to-cancel is staying, and will be default behaviour (just to be clear).

Quote from: Guigui on Today at 09:13:44 PMNever tried insert replay though, mainly because I do not even know how to trigger it.

This is probably the main reason it should be a single mode. Users should get the benefit of NeoLemmix's replay editing capabilities whether or not they know the hotkeys.

Quote from: Guigui on Today at 09:13:44 PMAlso I have trouble imagining how inserting an assignation may not break the rest of the coming replay.

Sometimes, it does! Most of the time though, it doesn't. It really depends on the situation.

Quote from: Guigui on Today at 09:13:44 PMFinally I am very used to airclick for replay cancel and never use anything else, please do not remove it.

Again, to be very clear, airclick-to-cancel is not going to be removed from CE. The proposal is only to make it optional.

Meanwhile, I've replied to your replay-for-playtesting suggestion here.