[SUGGESTION] [PLAYER] [ADDED] V1.36n - Replay saving, data loss by default

Started by Simon, December 23, 2015, 03:24:29 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Simon

Status: Since some people do like it the way it is, I'm expanding the available options for the next update. In addition to the current "Automatic name" and "Manual name" options, I've added:

> Automatic name with timestamp
> Automatic name, confirm overwrite, offer chance to specify custom name if user selects "No"

The "Timestamp" option will be the new default. This choice (rather than the confirm overwrite) is based on feedback from people who have tested it as well as theoretical discussions.

Simon

Play game. Press [ u ] to save replay from game. Automatic filename is Replay/<levelname>.lrp. Play same level again. Press [ u ]. Above file is overwritten. People become sad.

Expected instead: Any method to prevent clobbering the existing file.

Ideas that were brought up in the past:

  • Automatic filename contains the datetime.
  • Use the GUI widget by default.
If you use the datetime, avoid filename-untypical chars like ':' in the filename. D Lix uses the player's name and the datetime, precise to seconds, a la
AnotherLixInTheWall2p-Simon-2015-12-02-035345.txt.

-- Simon

namida

Currently, auto-saved replays do indeed include a timestamp, which IIRC also precise to the second. I'm not sure if people may feel this creates an untidy replay folder if even applied to manually-saved replays.

At least with how I play, I would find the GUI always popping up to be very inconvenient. Timestamped replays would be more reasonable, as generally one would want to use the latest one; the only problem is, as mentioned, a messy folder containing lots of replays. These could of course be manually deleted.

Here's a proposal, which I would like some input on from other users:

Currently, there are two options in regards to replay file auto-naming: "On" or "Off". The default option is "On".
"On" automatically names the replay file after the level's rank name and level number in the case of a standalone level pack (including those made with the Flexi Toolkit) - eg Fun_01.lrb, or the level's name in the case of NeoCustLemmix or the editor's playtest mode - eg Just Dig!.lrb (it will automatically remove characters that cannot be in filenames, replacing them with underscores, and trim whitespace either side of the name). This . "Off" presents a Save File dialog any time the user attempts to save a replay. The default filename in such is the same as the automatic name when using "On", but this can be changed by the user. This option would remain as it currently is.

A second, seperate option could be added, which is whether or not to add a timestamp to the replay name. This would be added to automatic names when saving a replay, as well as to the default name when not using auto-naming. This setting (and the above one for that matter) would not affect auto-saved replays, which already have a timestamp anyway, and I think would be too much potential for data loss to apply this option to it (manually-saved replays, on the other hand, at least require some user input in order to erase anything).

The remaining question then is: What should the default options be? I would think that if the default option is auto-naming, it makes sense to have the timestamp turned on, because this way nothing will be lost - at worst, it will be hard to find. Those who prefer a tidier replay folder can change the option.

Another thing to consider: Should perhaps "Solved" or similar be added to auto-named titles, in cases where the replay offers a successful solution? Maybe this should be a seperate option?


Other proposals are welcome, of course, as well as comments on if/how this one should be changed.
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)

Nepster

Here is my opinion:

Have at most two options regarding saving replays
Anything more only clutters the option menu and leaves players like me confused. This holds in particular for options that depend on each other, e.g. "Adding Timestamps On/Off" depends on the setting of "Auto-Save Replays". So I should not be able to see this option when the game saves replays automatically.
Anyway even if you add this third option, it still doesn't do what I want it to do and I have to rename my backup replays by hand. Either force your own preference down my throat and have a simple option menu, or make things completely customizable.

Unique replay names are useful
Any saved replay was created due to an explicit command coming from me. So I want to keep it until explicitly stating to delete it. Hence the new replay needs another name. Currently I have to switch tabs to rename replays before I can record an alternative solution. I got used to it, but it's not the ideal solution.

Auto-save replay names
Putting "FAILED" somewhere is better than adding "SOLVED", because failed replays are more likely to be deleted and I don't want have to rename all successful replays just to delete the "SOLVED". Alternatively don't automatically save failed attempts in the first place.

Summary: Don't add another option. Just add the date/time to the automatic/suggested file names.

PS: If you plan in NeoLemmix V2 to save replays from all level packs in one global folder, instead of using seperate folders for each level pack, then a useful structure of replay names will be even more important than it is now.

PPS: I'm not completely happy with Simon's D Lix replay names either: For single-player levels, the user name is useless, but the level pack and rank are important.

namida

#4
QuoteCurrently I have to switch tabs to rename replays before I can record an alternative solution. I got used to it, but it's not the ideal solution.

There is (and has been for a very long time; it was added in V1.19n) an option to disable automatic naming. Should you use this option, a Save dialog will pop up every time you save a replay, allowing you to completely choose your own filename.
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)

Nepster

Quote from: namida on December 23, 2015, 06:32:52 PM
There is an option to disable automatic naming. Should you use this option, a Save dialog will pop up every time you save a replay, allowing you to completely choose your own filename.
I know, but usually when playing through a level pack, I want to save just one replay. So it's more convenient to use the automatic names first (and perhaps later rename them). But when I then come to a level with alternative solutions, I cannot change the option at the results screen any more. 

Proxima

Quote from: Nepster on December 23, 2015, 06:23:16 PMPPS: I'm not completely happy with Simon's D Lix replay names either: For single-player levels, the user name is useless
Not when you are the level author and you are saving replays from several different users for future backroute-proofing!

Simon

Number of options: Minimize, minimize, minimize. Whatever solution is cooked up, make that the only possible way -- until there are users explicitly claiming "I want short replay names, overwriting each other", and they bring a reason different from "I am used to how it's always been".

Let's not assume there might be users wanting it. Options bloats code and interface, the price is high. Assumptions without proof are not enough to justify their price.

Adding 'solved'? It's important information, but there are interesting alternatives to putting this in the filename. Autosave only solved replays and don't annotate with 'solved'. Or, because solved/failed is such a simple division, make different trees for solved and failed.

Most replays of interest are solutions anyway. Most failures aren't worth saving.

Improving this in Lix: Moved to fresh thread: Auto-replays [in Lix], to what dir and filename

-- Simon

namida

I just had a thought, which might suit those who like automatic names, but also want to be able to save multiple replays: If "Automatic Names" is on, allow a different hotkey (or shift+hotkey), which would override the default and ask for a custom name?
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)

Nepster

That's fine as well, but only if you pop up warning messages when people try to overwrite existing replays. Otherwise people will forget that there is already a saved replay, thus won't hit the different hotkey and will accidentally overwrite the file.

Simon

Recommendation I gave in IRC: Don't make yet another keybinding, and use the automatic naming even for user-made replays.

Second idea: Always pop up the browser for user-induced saves, and pre-fill the filename entry with the automaticly generated name.

-- Simon

namida

First option is viable. Second option is not; that popup box could get really annoying in some cases, which is why I made it an option rather than just always asking for user input there.

Another thing to consider - should auto-saved replays be kept seperate from user-saved ones, perhaps by means of a seperate folder? I'm thinking maybe seperate this into three folders - auto-saved successful replays, auto-saved failure replays, and manually-saved replays.
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)

mobius

This is why I don't like posting too much, my thoughts are often misinterpreted and stuff gets blown out of proportion. [referring to my post which triggered this discussion] But that's another discussion...

I haven't had much problem with the current replay feature other than problems resulting from my own stupidity.

I don't personally care for automatic replays too much because I found my auto replay folder fill up quickly with hundreds of replays that are impossible to sort through. This would happen if each replay were saved differently each time you pressed the save replay button.

Here's my proposal; have two buttons. One works exactly the same as the current one does. The other works like the "save as" feature in most Microsoft programs. It brings up a dialog box for you to name the replays differently; a quick and easy method to separate a "special" replay.

always pop-ups; no, please.

everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


namida

Don't feel bad about that. Even if someone interprets it wrong, it can often nonetheless lead to discussion that ultimately does improve the engine. (However, of course, you should point this out, so that your problem is correctly understood too, and can be dealt with if appropriate.)

Automatic saving will always be optional.

I agree with your point on automatic naming, albeit not as strongly as you feel about it.

It seems the main things people want, in regards to manually saved replays, fall into three basic types:
1. The current behaviour
2. The current behaviour, but with a timestamp, and possibly "SOLVED" (or "FAILED") added to the name
3. Asking for a name every time
4. Following the first option, but confirming before any overwrite

Currently, manually saved replays offers a choice between option 1 and 3, while auto-saved replays (which are themself optional, and disabled by default) always use behaviour 2.

If these behaviours are the only desired ones, it should be very simple to implement them and allow the user to choose. #4 is the only one not currently implemented, but it would not be very difficult to implement so I can definitely do so.

Is there anyone who feels that none of these options are adequate?
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

I was going over this in IRC yesterday, to understand möbius's use case.

Pack designers want to have unit tests proof that their intended solution works, and want exactly one working replay per level. So they play a ton of levels, hitting manual save whenever they're satisfied. The silent overwrite is beneficial, they explicitly want the newest file only.

The auto-numbering on manual save would generate maybe 2x as much files. The pruning algorithm would become: After playing, for each level, keep only the newest replay. Now, with > 100 levels per pack, picking exactly these files using the standard Windows file browser is a major pain in the ass.

I believe möbius's accidental overwrite was not due to NL clobbering, but by normal human error during manual file moving.

(Pruning a dir of replay files should be done by a script, which on Windows, again, is a pain. I haven't thought about integration into NL. The silent overwrite is kind of an integration.)

-- Simon