Author Topic: [FEAT] Classic Mode  (Read 1606 times)

0 Members and 1 Guest are viewing this topic.

Offline WillLem

  • Moderator
  • Posts: 3348
  • Unity isn't sameness, it's togetherness
    • View Profile
[FEAT] Classic Mode
« on: February 14, 2023, 10:13:58 PM »
The following player-assist features will now all be de-activatable in the config menu:
- Skill Shadows (already implemented in NL)
- Clear Physics Mode (done!)
- Direction-select, Walker-select & Highlight Lemming (done!)
- Framestepping (done - this one was very wierd to see in action!)
- Splat ruler & other helper overlays (done!)
- Skill Queuing (done!)

The above will also be Globally hide-able via a single "Classic Mode" checkbox.

The "Classic Mode" checkbox will also affect the following (which, unlike the above, will not be individually customisable):

- Assign-whilst-paused deactivated (done!)
- Min/Max RR deactivated
- No Save/Load State, No Save/Load/Edit/Insert Replay - However, Replays will still auto-save on successful completion of a level (iff the user has Auto Save activated)

(I'm also considering allowing levels to force Classic Mode) Decided against this.

Where I'm up to with this:

:tal-gold: "Classic Mode" checkbox is implemented, and code has been written that will allow it to toggle multiple other checkboxes at the same time. It also saves to user config on exit.

Note that I'll probably change the checkbox labels of the following to something else

:tal-gold: Skill & Projection shadows are no longer toggleable in-game (this effectively means that projection shadows have been removed altogether, but skill shadows can still be turned on and off from the config menu).

:tal-gold: "Hide CPM" checkbox is implemented, working and saves to config. It works by checking for ClassicMode at the point of player input.

:tal-gold: "Hide Special Select (Direction, Walker & Highlight)" checkbox is implemented and working, in a similar way to Hide CPM. It also saves to user config.

:tal-gold: "Hide Frameskipping" checkbox is implemented and working; it requires code for both KeyDown and MouseDown due to the LMB advance 1 physics frame. It saves to user config.

:tal-gold: "Hide Helper Overlays" checkbox is implemented, working and saves to config. it requires code in a number of different places, so is worth keeping track of by FIF "GameParams.HideHelpers".

:tal-gold: Classic Mode also deactivates Assign-Whilst-Paused and all Replay functions except AutoSave on successful completion.
« Last Edit: July 21, 2023, 01:15:05 AM by WillLem »

Offline WillLem

  • Moderator
  • Posts: 3348
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SuperLemmix] Introduce Classic Mode
« Reply #1 on: February 24, 2023, 01:21:18 PM »
I need help with coding in Classic Mode. I've thought of various ways to do it, each of which has their own set of problems:

The easiest way I can think of is to simply set a "ClassicHotkeys.ini" file which contains pre-configured hotkeys for all features except the ones that Classic Mode proposes to leave out. This would mean coding in the ability for SuperLemmix to Save & Load hotkey config files, since the user's "MyHotkeys.ini" file would need to be preserved and re-loaded when Classic Mode is not in effect. An elegant solution even if I say so myself, but it would ultimately be possible for the user to simply go in and edit the "ClassicHotkeys.ini" with a text editor, thus defeating the entire purpose. (EDIT: I suppose I could make SuperLemmix check for edits to this file and throw an error, but this seems far too clunky a way around it).

Another way to do it would be to insert code which checks for "Classic Mode" before allowing a user-defined hotkey to access its function. So, the hotkeys would all be preserved, but would effectively do nothing. I can imagine this also being relatively simple, but I'm unsure exactly where to start with it or whereabouts in the project this would need to go - I would definitely need help getting started with this.

Lastly, the most difficult way would be to hard-code "Classic Mode" into each of the various functions themselves. This isn't something I feel comfortable messing with really; I'd need a lot of help to manage this, at least initially.

I know that some people don't see the point in a "Classic Mode" existing, but it's really the way I want to go with this. It's been suggested that I just make the entire engine "Classic Mode", which would admittedly be easier to actually do but very laborious and would cost loads of great features which I still want the engine to have.

However, I'm in a bit of a bind with this, so...

Either I need help getting the code written (preferred), or I'll have to seriously think about culling features (really don't want to do this).



Just for the purposes of discussion, if I was to go down the route of "this engine should be different from NL in its gameplay, so I need to choose which features are best in line with my own gameplay philosophy" (or something less vague!), this is what I'd probably do:

Keep direction select, walker select, assign-whilst-paused (ideally, making an assignment would then unpause the game), athlete info, show used skills and clear physics (hold only).

Allow skill shadows to be toggled on and off in the config menu, but not in-game. I'm reluctant to remove them altogether because they are so darn helpful, but I'd want to essentially frame them as a "Cheat Mode" (or "Easy Mode", if you'd rather), to encourage players to go ahead and try playing without them. Projection shadows, on the other hand, would be removed as they're a step too far down the "picture puzzle" route IMHO.

Remove all helper overlays, splat ruler* and other messy UI items, but maybe keep numbers over hatches, since this could be used unfairly whilst the others can all be either eyeballed or found out via athlete info (in the case of pre-assigned hatches).

*I've never fully learned what the various points on the splat ruler are, but I know they have something to do with different fall heights for different states. This is way too much for a player to have to bother about; if your level requires use of it, it's probably not a very good level.

As for Framestepping, the more I think about it, the more I realise that this would have to go. I'd be happy to try and implement a rudimentary "Fast-Backwards", which would essentially repeatedly perform -4 frame skips; I've already tested to see if this would be possible, and it can be done. This is so mistakes can be rewound, but the fine-tuning of assignments would be taken out of the game.

Replay-after-restart, replay insert mode and fine-editing of replays would also have to go. I'd keep the ability to save replays on successful completion of a level, but that's about it as far as replays are concerned. Saving an unsuccessful replay is basically a backwards framestep, when looking at it from this point of view, so it'd have to not be possible.

Again, I don't really want to do any of this, I'd much rather get help with making Classic Mode a reality.

With Classic Mode as an option, everyone can enjoy SuperLemmix regardless of their preferred "philosophy" (Timebombers notwithstanding: these are a wild card that will be the same for everyone ;P)
« Last Edit: February 26, 2023, 05:25:56 PM by WillLem »

Offline Dullstar

  • Posts: 2092
    • View Profile
    • Leafwing Studios Website (EXTREMELY OUTDATED)
Re: [SuperLemmix] Introduce Classic Mode
« Reply #2 on: February 24, 2023, 11:48:25 PM »
Quote
*I've never fully learned what the various points on the splat ruler are, but I know they have something to do with different fall heights for different states. This is way too much for a player to have to bother about; if your level requires use of it, it's probably not a very good level.

I think it has something to do with some very specific weird considerations with splat height from different transition states, e.g. hatch or climbers hitting their heads or something stupid like that. If you're breaking existing content anyway best to find someone who knows exactly what those are and then fix them so the splat ruler can be nice and intuitive like the Lix one.
« Last Edit: February 26, 2023, 05:26:06 PM by WillLem »

Offline Proxima

  • Posts: 4562
    • View Profile
Re: [SuperLemmix] Introduce Classic Mode
« Reply #3 on: February 25, 2023, 12:47:57 AM »
The top mark is the height from which a climber can fall safely, which is higher than for a walker because when the climber hits his head, his foot is some distance from the ceiling. You can see this clearly on The Runaround (Redux Quirky 7), where a climber can climb up the inside of the one-way wall and fall safely, but the plain splat ruler (before the extra markings) would suggest that he dies.

The middle mark is for walkers, and the bottom mark is for the initial fall from the hatch.

I completely agree that the markings are a bad idea. I've seen so many people be confused by them or (the most common mistake) think that the full height of the ruler is the splat height for walkers. I can see that knowledgeable players might benefit from the extra markings, but it's not worth the confusion it causes to new players. (Maybe one solution would be to offer different splat rulers as an option, with a plain ruler as default. But it's already customisable by including a different graphic in gfx/helpers.)

I've attached plain rulers (normal and hi-res).
« Last Edit: February 26, 2023, 05:26:15 PM by WillLem »

Offline WillLem

  • Moderator
  • Posts: 3348
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SuperLemmix] Introduce Classic Mode
« Reply #4 on: February 25, 2023, 03:31:07 AM »
Thanks for the explanations, guys. It makes sense why the different markings are needed if a splat ruler is to exist at all.

(Maybe one solution would be to offer different splat rulers as an option, with a plain ruler as default. But it's already customisable by including a different graphic in gfx/helpers.)

I have mine set to just regular walker splat height, and even then I'm not always sure whether it's the last pixel of the ruler or the first non-ruler pixel that's marking the unsafe height.

In fairness, it can be useful for more than just a splat ruler: it can be used to judge where various level pieces are in relation to one another as well.

If anyone fancies giving it a look, I'd be happy to implement a different ruler graphic. Not sure I can make one that snaps to surfaces like the Lix one, though.

Whilst we're on the subject, two things I like about Lix that I'd consider looking at bringing to SuperLemmix (sometime in the very distant future if my coding skills improve drastically) are the Batter and the level Wrap feature - just a thought for now. I've already started working on a set of Lemmings sprites for Lix, and the Batter is one I've already done. Of course, it also requires coding "lemmings that have been hit by the Batter", which is quite a bit beyond what I'm prepared to do at the moment.

Incidentally, I've attached the unfinished 'Lix Lemmings' graphic here, it's unlikely I'll finish this anytime soon because I want to concentrate on coding for now, and some of them just look plain awkward in the conversion. But, you can check out the Lemming Batter, at least! :lemcat:



Meanwhile, with big thanks to namida I'm pleased to report that I've made significant progress with Classic Mode this evening. Along with Hide Skill Shadows (which we already had), I've now added working checkboxes for CPM, Direction/Walker Select & Highlight Lemming and Frameskipping. Next up will be the Helper graphics and then a limit for Replay mode (namely, Replays will only be saved upon successful completion of the level in Classic Mode, and Editing won't be possible).

Once that's done, and after a bit of last-minute tweaking, SuperLemmix will be well ready for an initial RC release! Timebombers will have to wait for now, I think it'd be a bit of a stretch for me to implement at the moment. I'd rather get the player and new editor released and tested as they are, and go from there.

Thanks again for the support so far everyone :lemcat:
« Last Edit: February 26, 2023, 05:26:22 PM by WillLem »

Offline Proxima

  • Posts: 4562
    • View Profile
Re: [SuperLemmix] Introduce Classic Mode
« Reply #5 on: February 25, 2023, 08:39:59 PM »
Will classic mode disable skill queuing?
« Last Edit: February 26, 2023, 05:26:29 PM by WillLem »

Offline WillLem

  • Moderator
  • Posts: 3348
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SuperLemmix] Introduce Classic Mode
« Reply #6 on: February 26, 2023, 02:31:08 AM »
Will classic mode disable skill queuing?

Ideally, yes. There are a number of more minor features (like jumping to max and min release rate and, indeed, skill queuing) that feel like they don't belong in Classic Mode, so if I can hide them, I will.

For regular mode, these features will of course still be available.

Some of it is still very much up for debate. I'll implement as much as I can, and when the RC is released I'll respond to feedback about Classic Mode, what's good about it, how it could be improved, etc. It's by no means a finished product at this early stage.
« Last Edit: February 26, 2023, 05:26:38 PM by WillLem »

Offline WillLem

  • Moderator
  • Posts: 3348
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [SuperLemmix] Introduce Classic Mode
« Reply #7 on: March 01, 2023, 04:19:37 AM »
I've come a long way with this one. Classic Mode can now do the following:

- Deactivate Skill Shadows
- Deactivate CPM
- Deactivate Direction Select / Walker Select / Highlight Lemming
- Deactivate Frameskipping (includes special skips and slow motion)
- Deactivate Helpers (includes all overlays plus splat ruler hotkey)
- Deactivate Skill Queueing
- Deactivate Jump-to-Min/Max RR
- Deactivate Save/Load State / Save/Load Replay / Edit Replay / Replay Insert Mode
- Deactivate Assign-Whilst-Paused

The above is all tested and ready; there are likely many bugs and edge-cases that I haven't considered, but it all works.

The only feature holding this back (and in fact one of only 2 things holding up an initial release of SuperLemmix) is Deactivate Replay-on-Restart.

Let me be clear: this is not the same feature as "Cancel Replay After Backskip." It's already possible in NL to do this, and yet still have the level's replay load if you Restart the level, in any of the following ways:

- Pressing the Restart button or Hotkey
- Choosing "Retry Level" from the Postview screen
- Exiting all the way to menu or level select, and then choosing to play the same level

The first of these I've sorted; in Classic Mode, hitting Restart button or Hotkey cancels the Replay. No problems there.

The issue is the other two, and they're causing more of a headache than I imagined. Since NL's gameplay structure is basically built on its Replay functionality, messing with anything to do with replays is like diffusing a bomb!

Restarting whilst in-level shouldn't trigger a replay, I'm sure we can all agree that this is not in the spirit of Classic Mode. However, when the player has exited a level, it becomes a bit more complicated.

Firstly, if they've successfully completed the level, of course a Replay should be Auto-Saved and/or the player should be able to save one manually via the "Save Replay" clickable text/hotkey - I still want those who use Classic Mode to be able to save and share replays (maybe it could form the basis of a new challenge?) :lemcat: So, "Save Replay" needs to be left alone, even in Classic Mode. So, for that matter, does "Auto-Save" (a toggleable option which automatically saves a replay upon successful completion of a level).

If the player hasn't completed the level though, it becomes a bit more complicated here. I still want them to be able to save a replay (they may be highlighting a bug, or something which makes the level impossible, or they may just wish to save the replay to review at a later stage). It does mean that players could still "cheat" in Classic Mode and use replay saving-and-loading TAS-style to complete a level, buuut if someone's going to bother to do that, then... whatever, I cba trying to stop it at this stage, and there's more to be lost by outright preventing it.

However, if the player re-enters the level after a non-successful attempt (either by hitting "Retry Level", or via the Level Select screen), I don't want the replay to load.

So, basically, here are the cases I'm attempting to account for:

Case 1: (ClassicMode active) and (level finished unsuccessfully) >>> (user inputs "Save Replay" either by hotkey or mouse click) | Result: Open save replay dialog, go back to Postview screen after saving. Thereafter, usual replay-on-restart behaviour could be allowed in this case, since the player may wish to review the level again and the replay has been manually saved anyway.
Case 2: (ClassicMode active) and (level finished unsuccessfully) >>> (user inputs "Retry Level" either by hotkey or mouse click) | Result: The Replay is cleared and the level is reloaded (so, no red or blue R).
Case 3: (ClassicMode active) and (level finished unsuccessfully) >>> (user inputs "Select Level" either by hotkey or mouse click) >>> Result: Level Select Screen is accessed, Replay is kept in memory until a level is selected; therefore, if the player cancels out of the Level Select Screen, they can still choose to "Save Replay" from the existing Postview (i.e. Level Select doesn't exit the Postview Screen) | If, however, they choose to load a level via Level Select, the Replay is cleared.
Case 4: (ClassicMode active) and (level finished unsuccessfully) >>> (user inputs "Exit to Menu" either by hotkey or mouse click) Result: The Replay is cleared and the Main Menu is accessed.



I've managed to write some code which fully covers cases 2 and 4, and appears to also have cases 1 and 3 covered:

Code: [Select]
if GameParams.ClassicMode and not GameParams.GameResult.gSuccess then
  begin
    fReplayManager.Clear(true);
  end;

However, what happens here is that if the player chooses "Save Replay", the replay is indeed saved, but is for some reason unplayable. It isn't blank, all the level info (I.D, etc) is the same. It just won't play.

I have no idea why...



EDIT:

Tried the following. Getting an "Undeclared identifier" error message on TGameBaseScreen, which I'm hoping is an easy fix because I think I'm on the right track with this one. Going to bed, I'll look at it again tomorrow:

Code: [Select]
if GameParams.ClassicMode and not GameParams.GameResult.gSuccess then
begin
  if not TGameBaseScreen.TryLoadReplay then
  begin
    fReplayManager.Clear(true);
  end;
end;
« Last Edit: March 01, 2023, 04:53:32 AM by WillLem »

Offline WillLem

  • Moderator
  • Posts: 3348
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [FEAT] Classic Mode
« Reply #8 on: July 20, 2023, 04:29:45 AM »
Now that we have Classic Mode, it behoves level designers to make sure their levels are playable with it activated.

Bear with me on this...

In an ideal world, SuperLemmix would have an in-built check similar to MRC which would scan over a replay and see whether it can be completed whilst in Classic Mode. I suppose it could check to see if there are multiple different skill assignments within a certain range of frames, but make reasonable allowances where possible.

So, for example, 2 rapidly-assigned Walkers to free-and-turn a Blocker wouldn't flag up, as that can be done in real time by simply double-clicking. Whereas a Walker, then a Builder, then a Basher (for example) to 3 different lems on 3 consecutive frames would flag up as not reasonably possible in real-time, and would fail the check.

Even if such a check could be performed, there would still need to be a replay provided. And, if a level designer were to supply such a replay for this purpose, then it's reasonable to expect that the same designer would be happy to run through the level in Classic Mode themselves anyway.

So, rather than attempt to do any programming around this, I'll simply recommend that anyone making levels for SLX kindly check for its "Classic Mode Playability", at least for the sake of any end user who may prefer to play with it activated at all times.

In addition, think of it as a way to quality-check your level and make sure it isn't an overly-fiddly mess! ;P I speak to myself here as much as anyone else - any of my levels that can't be completed in Classic Mode won't make the cut for any ports/remixes that make their way over to SLX, and I'd encourage other level creators to think the same way.
« Last Edit: July 21, 2023, 01:16:56 AM by WillLem »

Offline Strato Incendus

  • The King of Shimmiers (crowned by Flopsy ;D )
  • Posts: 1747
  • #RIP Spearer/Grenader (2020 - 2021)
    • View Profile
Re: [FEAT] Classic Mode
« Reply #9 on: July 20, 2023, 08:35:06 AM »
I see classic mode as a player choice, not a level designer choice.

To me, that’s like saying “make sure your graphic set also looks good in hi-res mode”, even if you’ve only designed one for low-res; or like saying “make sure your levels can be solved with the classic 8 skills” (since that’s technically a vital part of the “classic” Lemmings experience, too). I know this isn’t exactly comparable; I’m just trying to find the closest similar examples I can imagine.


One downside of a wider range of options for the player is that designers won’t be able to please everyone.
Hence, I do not think it is the level designer’s job to cater to different individual playing preferences. :evil:

Classic mode as a player choice is fine. But this rule would effectively force everyone to play in classic mode who chooses to design levels. It may depend on your viewpoint whether designing levels is a service to the community, or playing the pack a favour the community does the level designer. :D

But either way, if this becomes an official requirement for packs to be released, I would rather not release any packs for SuperLemmix at all (even though I’ve already started making / adapting levels for it, and despite all of my enjoyment for the new skills).

If this sounds like me just wanting to defend pixel precision in my own levels, keep in mind classic mode is a much higher requirement than that.
Most importantly, it requires that all levels be solvable (in a reasonable amount of time) without any skill shadows whatsoever.
That is simply not something NeoLemmix level creators ever had to work with over all the years I’ve been on the forums. (Skill shadows didn’t exist in 1.43, as far as I recall, but that was before my time — I had to actively go back to it for Lemmicks.)
Even though skill shadows can of course also be deactivated in NeoLemmix, as you pointed out — but that is seen as a player choice, not something the level designer has to live up to.

Even a simple level (by NeoLemmix standards) like “Postcard from Lemmingland” becomes that much harder when you have to try out different starting positions for the Miner. This is indeed also a form of (in my view) needless execution difficulty.



By introducing a requirement for a classic-mode check, we would essentially be doing the same thing that radiation and slowfreeze (or timed bombers) require from level designers: Reducing the execution difficulty for the player by trying out the positioning of the objects a bunch of times.

This is fine with radiation and slowfreeze or timed bombers, since including those in a level is the level designer’s choice. If I add them, but do not acually want to increase execution difficulty all that much, it’s on me as the level designer to try out the level a bunch of times, in order to determine where to place the radiation and slowfreeze objects, and where I might possibly have to include hints in the terrain that tell the player to e.g. clone the radiating / slowfreezing lemming at this spot.

Classic mode however requires such an execution-difficulty check for literally every skill assignment in the level. Level designers can’t circumvent it by simply deciding not to use timed bombers, radiation, or slowfreeze: Every miner or builder assignment now becomes up for debate whether it qualifies as “too precise for classic mode”.

Also, that judgement depends on the players’ varying execution skills. Back when I made Lemmicks, I was certainly able to pull off click marathons in the Hasty rank (SuperLemming and no-pause / Frenzy enabled) that other, more puzzle-oriented players found too fast to even be doable. 8-)

What about certain skill tricks, like the Miner-Miner-cancel trick, or even just stopping a Basher mid-stroke to create a ramp? What about six-pixel Digger-Basher staircases? All of these are difficult without framestepping, too. Especially for players more trained at puzzle solving than execution difficulty.



I will certainly NOT go through all of Lemmings World Tour again and replay every level manually in classic mode to see if it can be done. :evil: Especially since none of my NeoLemmix packs were made for that requirement in the first place. If I may release Lemmings World Tour for SuperLemmix without such a check, it’s a “take it or leave it” kind of thing.

I would also be cautious about adding additional workload to level designers’ schedules before any packs have been officially released for SuperLemmix at all. ;) (The releases in the “level sharing topic” really seem more like preliminary solutions to me; at this point, there are no official dedicated pack-release threads for any SuperLemmix content).

Quote
any of my levels that can't be completed in Classic Mode won't make the cut for any ports/remixes that make their way over to SLX, and I'd encourage other level creators to think the same way.

I have no clue how many of my levels that would affect or not. I’m only certain it would reduce the number of levels in any pack I currently attempt to make available for SuperLemmix in some way, and change the number of levels per rank to different, arbitrary numbers.


I was wondering when the different philosophy of SuperLemmix vs. NeoLemmix — which so far seemed to be about “more choices, more options” — would start becoming restrictive in its own right. Classic mode, in my view, is about players who choose to bring higher (potentially unintended) execution difficulty on themselves. This requirement however forces level designers to increase execution difficulty for themselves.

I appreciate that more execution difficulty may always be permissible in SuperLemmix packs (compared to NeoLemmix), so as a player, I am ready for that whenever I download someone else’s SLX pack. But there will still be players who have been so conditioned by the NeoLemmix puzzle requirements over the years that execution difficulty will not be something they enjoy in SuperLemmix either. Hence, they also won’t enjoy classic mode, not even on their own levels.

And while I see how your suggestion is probably intended as a way of reducing execution difficulty, classic mode creates a “general suspicion” of execution difficulty, holding level designers to a standard of leeway with regards to skill assignment that was never imposed on them in all of the years of NeoLemmix’s existence.



TL;DR: This requirement would make what is currently a player choice — classic mode — mandatory; not for the players, but for the level designers. I think this is especially odd to demand at the current time, when nobody has officially released any dedicated packs for SuperLemmix yet (at least not as far as I am aware?).

I do enjoy SuperLemmix for all of its many new features over NeoLemmix. But currently, NeoLemmix is still the more popular engine, in terms of packs available for it, and new packs that are being released for it. And hence, I am not that deeply invested in SuperLemmix yet that it would bother me to go back solely to NeoLemmix. :evil:

That’s saying something, if it’s coming from me — someone whose first pack, Paralems, was about as far away from NeoLemmix puzzle philosophy as imaginable, and indeed actually closer to original DMA Lemmings. If I don’t enjoy this, even though classic mode seems like it would be tailor-made for someone like me (also keep in mind my appreciation of radiation and slowfreeze here), I don’t see who else would enjoy being forced to play (at least while designing levels) in classic mode.

So yeah, big no from me — and if it does become a requirement, I’m out. :8():



PS: Perhaps it would be a good idea to make a poll about how many people are actually using classic mode right now. ;) If only a handful of people do, the request that all level designers cater to that holds even less water than if, by self-selection, all current SuperLemmix players (aside from myself) are using it. Then I would be the odd one out — literally. And in that case, it wouldn’t be in anyone’s interest if I made content for SuperLemmix, if it doesn’t line up with what the SuperLemmix community enjoys in level design.

Since I have finally been getting into the higher ranks of NepsterLems recently, I’ve come to realise how often puzzle difficulty and execution difficulty / pixel precision can go hand in hand at higher ranks. Namely, whenever one pixel of difference actually makes a conceptual difference. For example, the difference between a Builder turning around after finishing vs. not turning around.

If levels depend on these conceptual differences (how often a lemming turns around is often a vital component of more challenging puzzles), then the level designer cannot allow for more leeway with regards to the position of the skill assignment, lest that leeway will introduce backroutes.
« Last Edit: July 20, 2023, 10:03:41 AM by Strato Incendus »
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

Offline WillLem

  • Moderator
  • Posts: 3348
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [FEAT] Classic Mode
« Reply #10 on: July 21, 2023, 01:04:47 AM »
I stand by what I said: SuperLemmix provides a Classic Mode, and my advice would be to make sure your levels can be played and completed in that mode.

However, to make it very clear - it will never become an outright requirement for designers to ensure "Classic Mode playability". It's purely advisory, in the same way that "don't hide the Exit" is advisory in NeoLemmix - people still can, and do, release levels with hidden Exits! ;P

To address some of the individual points:

this rule would effectively force everyone to play in classic mode who chooses to design levels

Again, it's not a rule. I'll never bother to do anything to enforce Classic Mode in any way, shape, or form. The option is there and that's as far as it goes, engine-side.

However, it still seems worth expressing that designers may want to ensure that their levels can be solved in Classic Mode, both for the player's sake, and as an optional layer of quality-checking.

It may depend on your viewpoint whether designing levels is a service to the community, or playing the pack a favour the community does the level designer. :D

Personally, and from experience, I'd say it's very much a two-way street.

if this becomes an official requirement for packs to be released

It won't.

Most importantly, it requires that all levels be solvable (in a reasonable amount of time) without any skill shadows whatsoever.

If there is a "SuperLemmix Philosophy" (and I hope there isn't!), it would be that all levels should be able to be played, and completed, without the player-assists - no exceptions. That's something I feel strongly enough about that Classic Mode exists in the first place!

But again, it will never become a requirement - note that SuperLemmix still provides every player-assist tool that NeoLemmix does, with the exception of Skill Projection shadows, which I've always felt are taking the concept a step too far.

But, it also provides a button which says "I dare you to turn them off!" ;P

That is simply not something NeoLemmix level creators ever had to work with over all the years I’ve been on the forums

Just because something has or hasn't been done a certain way for a long time doesn't make it good, or right. Ideas and concepts need to be able to stand up to scrutiny away from any notions of "it's the established way things are done". And I mean that generally, not just in the context of the current discussion topic.

Every miner or builder assignment now becomes up for debate whether it qualifies as “too precise for classic mode”.

And so it should - does anyone really want to play a level where every Builder assignment must be placed on one particular frame, with absolutely no leeway? I definitely don't!

I don't want to get bogged down in examples, but I feel the need to illustrate a point here. Imagine a level where you have to build across a large gap, but in order to make it to the other side, each Builder must be placed at the absolute extreme tip of the previous Builder bridge. Now, in order to make it across, it's necessary to framestep back and forth a the end of each bridge until you find the very last pixel.

Classic Mode is a good way to discourage this sort of fiddliness away from the game with one broad brush-stroke. Another way would be to implement block-based physics rather than pixel-based, and those games that do so (L3D, Revolutions and the 2018 mobile game) do benefit from a reduction in this sort of gameplay. However, I personally find that they become a bit too paint-by-the-numbers as a result, and it's not as possible for players to be as inventive with a level's solution as they could in the earlier games.

Similarly, over-reliance on player assists actually has the same effect on the game in NeoLemmix - levels become solvable only by their intended solution, and designers can make sure that this is the case down to the very last pixel. With Classic Mode, I'm aiming to help strike a balance and provide a platform that allows players (as well as level designers) to get a bit more creative again.

What about certain skill tricks, like the Miner-Miner-cancel trick, or even just stopping a Basher mid-stroke to create a ramp? What about six-pixel Digger-Basher staircases? All of these are difficult without framestepping, too.

If I never see another six-pixel Digger-Basher staircase level as long as I'm playing custom Lemmings, I'll be a very happy WillLem :)

With that said, such tricks may be difficult without Framestepping, but they are still possible. Some tricks and skill interactions are simply not possible in real-time, and if they aren't, then by necessity they require the player to pause, framestep, check the skill shadow, etc, etc, repeat ad absurdum.

What's better is a level that might take a bit of brainpower to find the solution, and a bit of eyeballing to get the correct placements, but that can then be executed with a minimum of player input per-action (ideally, 1 click). Enter Classic Mode.

Classic mode, in my view, is about players who choose to bring higher (potentially unintended) execution difficulty on themselves

It's been said a number of times now that SuperLemmix is "an execution-difficulty-focused" engine, and I suppose that perspective on the project is inevitable. But, what's closer to the truth is that I'm trying to strike a balance between puzzle difficulty and execution difficulty. When you have too much of one or the other, it's not a good thing.

One of the reasons I decided to start work on SuperLemmix is because I encountered one too many custom packs that was essentially a series of impenetrable picture puzzles that leave nothing to the imagination, and expect the player to perform the exact series of actions necessary to piece together the designer's idea of how the level should be played.

In my humble opinion, the best level packs are those which present variation across the board, in terms of level design concepts, puzzle difficulty, execution difficulty, skill types used in each level, map design, etc, and which often present a number of different possible solutions to any given level. There are, thankfully, plenty of examples of those on the Forums - but, I'd say they're in the minority, from what I've seen. With SuperLemmix, I'm aiming to encourage more of these!

classic mode creates a “general suspicion” of execution difficulty, holding level designers to a standard of leeway with regards to skill assignment that was never imposed on them in all of the years of NeoLemmix’s existence.

Again, just because something has been a certain way for years doesn't mean it's been the right way for years. And, NeoLemmix has imposed plenty of its own restrictions on level designers "over the years", as I'm sure you're aware ;P

Anyway, as I've now said several times, Classic Mode is not being imposed on anyone in any way, shape, or form - it's an option, and it wil always remain so. If "SuperLemmix philosophy" ends up becoming a thing, then that's really a different matter. I'd personally rather it didn't, but I suppose it is inevitable given its history.

All I can do, then, is aim to shape it into something which helps define a more balanced and varied style of level creation. By recommending that designers verify the "Classic Mode playability" of their levels, my hope is that it will help to highlight the designer's more playable, enjoyable levels - which I'm sure it will.

This requirement would make what is currently a player choice — classic mode — mandatory; not for the players, but for the level designers ... if it does become a requirement, I’m out. :8():

Again, it will never become a requirement, either on the player's side or the designer's side. Designers won't be able to force it on the player, and players will have to accept the possibility that any custom level they play might not be possible in Classic Mode. The advice I've given in this topic is to help mitigate the latter of these two scenarios.

I’ve come to realise how often puzzle difficulty and execution difficulty / pixel precision can go hand in hand at higher ranks

Two things here:

1) Execution difficulty and pixel precision are not the same thing. I wouldn't even count them as being on the same side of the coin. Maybe different sides of the same dice.

2) Indeed, NepsterLems is a great example of a levelpack which manages to find that balance between what's hard to figure out and what's hard to execute. Other examples are GeoffLems and Lemmings Plus I, which are amongst my favourites. Perhaps it's no coincidence that all of these were made in the days before the abundance of Player-assists!

the level designer cannot allow for more leeway with regards to the position of the skill assignment, lest that leeway will introduce backroutes

If I had to add further definition to "SuperLemmix philosophy", it would be to say that backroutes are OK, as long as they're interesting ;P



TL:DR;

Classic Mode is optional, and always will be, on both the player's side and the designer's side. I will make no move whatsoever towards making it anything more than advisory.

I'll add to that - in terms of said advice, I'll only likely give it outside of this topic if it's asked for, and even then I'll probably simply point the person towards this topic so they can read the discussion and make their own mind up about it.

"SuperLemmix philosophy" isn't something I really like the idea of, and I've said so elsewhere. But, if it has to exist, then I hope it does so in the form of encouraging a move towards greater variety in level design and an increase in enjoyable, playable levels which strike a balance between real-time playability and puzzle difficulty. One of the best ways I can think of to achieve this is encourage the use of Classic Mode, which will help designers to consider the real-time playability of their levels and hopefully promote a move away from over-reliance on player-assists.

Oh, and backroutes are OK as long as they're interesting ;P
« Last Edit: July 21, 2023, 01:20:30 AM by WillLem »

Offline Strato Incendus

  • The King of Shimmiers (crowned by Flopsy ;D )
  • Posts: 1747
  • #RIP Spearer/Grenader (2020 - 2021)
    • View Profile
Re: [FEAT] Classic Mode
« Reply #11 on: July 21, 2023, 09:13:58 AM »
Alright, thanks for your explanations! :D I already suspected it might not become a full-blown official requirement — at least not from your side personally. It might still become one via community demand, much like the “don’t hide exits” principle you mentioned is mainly based on their unpopularity — rather than on one of the NeoLemmix moderators saying so.

Hence, while most of my concerns have been rendered void for the moment, it will still be interesting to see how many SuperLemmix players actually use Classic Mode. (Perhaps give it a little time before starting a poll on that, so that people have some opportunity to try it out for themselves and play around with it.)

If we find that it’s hardly used, it will be seen more as a player choice; if however a majority of SuperLemmix players start using it, then it will get closer to that “don’t hide exits” example, i.e., it would be seen as a general wish of the community.
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

Offline WillLem

  • Moderator
  • Posts: 3348
  • Unity isn't sameness, it's togetherness
    • View Profile
Re: [FEAT] Classic Mode
« Reply #12 on: March 25, 2024, 11:12:41 PM »
After a year of SuperLemmix development, this finally has its own dedicated button on the menu screen :lemcat:



The plan is to add it to the top-right corner of all menu screens, if possible. Then it can easily be toggled on/off between levels, (particularly handy when encountering a "Play in Classic Mode" talisman).