[SUG][PLAYER] "Purge replays" button

Started by Proxima, November 08, 2020, 11:12:49 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Proxima

"Purge replays" would be similar to "Mass Replay Check", but it would delete all replays that don't pass, and so it won't need to generate a text document summary. (It should also warn the player before starting work, just in case they click on it by accident.)

It's possible to achieve the same result by running Mass Replay Check and deleting replays manually, but that's more laborious and this would automate the process.

The main use case is when importing a pack and its associated replays from an older version of NL -- usually I have no use for replays that no longer work, since I will have to re-solve the levels anyway. Also, if I was in the middle of playing a pack, then I am hoping to finish it eventually and post replays for the pack author when I do, and then it's just a courtesy to them to exclude replays that don't work any more. (The only time I can think of that I might want to keep defunct replays is when it's a pack I'm designing, since I may want to know how people have solved my levels, and I might not have gotten round to looking at all replays and making appropriate changes by the time a new version of NL is released. Needless to say, I play many more packs than I design.)

Strato Incendus

+1 for this suggestion! :thumbsup:

I do indeed like to keep non-working replays around for my own packs if those solutions are backroutes that I have successfully fixed (to test later on whether they accidentally popped up again due to further changes on the level).

However, for playing other people's packs, indeed those broken replays are rarely useful to the player anymore.

And even though with regards to this

QuoteNeedless to say, I play many more packs than I design.

I was about to comment "It's the other way round for me" :evil: , no, it honestly isn't. I just started a lot of packs in parallel and got stuck on most of them somewhere. I may have designed more packs than I've finished playing... but that might just be me forgetting about some of the easier packs I have solved. Usually, the harder ones remain in your memory for longer, because you've spent more time thinking about them.
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

namida

Deleting them feels a bit risky. Perhaps moving to a "Failed" subfolder instead (which can quickly be deleted as a single whole folder if the user still wants to take that risk, or has confirmed they really don't need the replays).

Keep in mind - failures are often not total failures, sometimes a minor tweak or two will have them working again. The other risk factor here is if they fail due to a bug in an exp build or something like that, and shouldn't have actually failed; or perhaps due to a level not found or missing pieces issue (ideally of course NL should distinguish this case anyway, but if that goes wrong, not outright deleting the file is a second safety net).
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

Sometimes it can be useful to watch a failed reply to find out why it failed, so that the level can be fixed. Although this is of course mainly useful to the designer.

+1 for "Failed" subfolder.

Strato Incendus

I'm fine with a "Failed" folder as well. :thumbsup: As long as it's some more convenient way of quickly and automatically distinguishing between working and broken replays - the separation is the key issue, not what happens to the failed replays after they've been singled out from the rest.
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

namida

Expanding on this, let's note that there are several possible outcomes for a replay:

- Passes
- Passes and earns a talisman (NL currently does not distinguish this from a plain pass - this is a feature I need to add at some point...)
- Fails
- Undetermined
- Error

How should, in particular, Undetermined and Error be handled under this proposal?


For reference:

Undetermined means that NL was able to load the level and test the replay on it, but five in-game minutes after the last action in the replay, the save requirement has not been met - however, enough lemmings to reach it still remain alive. In practice this is almost always a fail, but I have seen a very small number of cases where replays marked as Undetermined will pass if left alone even longer.

Error means that either the level could not be loaded, the replay could not be loaded, or the replay could not be matched to a level. It has no implication whatsoever on whether the replay would pass or fail.
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

Perhaps move these to folders marked "Undetermined" and "Error" respectively. Seems the simplest solution, even if it does mean creating more subfolders.

Simon

Quote from: namida on November 12, 2020, 01:42:31 AM
Undetermined
five in-game minutes after the last action in the replay, the save requirement has not been met
very small number of cases where replays marked as Undetermined will pass if left alone even longer.

Should be treated like fail; you can merely mark this separately/sort it into separate failing directory.

It's more an issue with the level than with the replay; level designer should remove the cause for taking over 5 minutes. Usually, these levels can cut initial lemmings so that all lemmings have exited 5 minutes after final assignment even under the initial release rate.

QuoteError
level could not be loaded
replay could not be loaded
replay could not be matched to a level

Might be worthwhile to mark which exact error it is? In a pinch, one can already run the replays individually.

-- Simon

Proxima

My main use cases for when I would want to purge replays are (1) I have started playing a pack in an older version of NL, and I want to copy the pack and its replays to the new version, verify my current progress, and continue from there; (2) I have started playing a pack, and the author updates it to fix some levels; I want to verify my replay collection to regain my completion ticks and see which levels I will need to redo.

In both cases, I have no use for failed/undetermined/error replays and I want to delete them all. It could be that some of my replays just need small tweaks to make them work again, but instead of rooting through the whole collection to look for these, it's a lot more fun to just solve any affected levels again.

namida

QuoteMight be worthwhile to mark which exact error it is? In a pinch, one can already run the replays individually.

There is currently no code that even attempts to distinguish these, so it'd be a bit of work, but it's a feasible idea. This would almost certianly push this back to a 12.12.X feature though.

QuoteIn both cases, I have no use for failed/undetermined/error replays and I want to delete them all.

One cause of error replays could be a missing style, or a corrupted level file. Do you still want to risk losing Error replays in this situation too?
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)

Simon

Quote from: namida on November 12, 2020, 09:18:29 PM
Quotemark which exact error it is?
This would almost certianly push this back to a 12.12.X feature though.

I'd focus purely on Proxima's use case, then. The extra diagnostics aren't urgent, no need to delay releases for this.

-- Simon

namida

Quote from: Simon on November 13, 2020, 01:02:20 AM
Quote from: namida on November 12, 2020, 09:18:29 PM
Quotemark which exact error it is?
This would almost certianly push this back to a 12.12.X feature though.

I'd focus purely on Proxima's use case, then. The extra diagnostics aren't urgent, no need to delay releases for this.

-- Simon

It would not delay the release; rather, it's a question of whether I implement it for 12.11 or 12.12. It won't be making it into the upcoming 12.10 either way. At best, if I get the feeling the risk of bugs or unexpected behaviour is very, very low, I might consider including it in a later 12.10.X update, though those are usually more for bugfixes.

It comes down to: There are some big things in the pipeline already for 12.11. So implementing more significant features is something I'd rather avoid. On the other hand, there is very little in the way of plans for 12.12 yet, so I can be much more flexible here.
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)

namida

A longer term goal is a replay manager which will help much more with this.

In the meantime, for V12.11, I've added an extra popup when running a mass replay check. If you want the same behavior that's always existed, simply click "OK" in this popup without changing anything. But, it lets you select - per result (ie: pass, vs pass-talisman, vs fail, etc) - whether you want to leave the replay alone, delete it, copy it to a new file, or move it to a new file. In the case of copy / move, it has the same flexibility as (in V12.11 onwards) auto-save, manual save, etc naming does - you can choose from a few presets or write your own (folder names are supported too!) using placeholders like {TITLE} etc.

It additionally has a option to refresh the replays. This does not replace the replay refresher for very old replays, the rule of thumb is "the replay must work on V12.10 for this to be of any use". What it can do is eg. fix incorrect title / rank / etc metadata in the replay, as well as add the new data for better tracking of cloners. Additionally, if the level file version number is different from the version the replay was recorded on, refresh will update it only if the replay passes.
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)