how replays work ??

Started by mobius, December 29, 2017, 03:34:27 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

mobius

I need an explanation or something;

The way replays function for NeoLemmix currently (for the most part) makes sense to me and works for me very well.
I seem to recall the same being true for lix in days past but somewhere along the line this changed. I know the replay format changed several times, not sure why. I don't understand how this works; it makes no sense to me:

-I have a level; have a working replay.
-I make change to level;
-I want to test this level on the old replay but there's a problem:
   -using the old replay normally uses the old version of the level; because it comes bundled with the replay file.
   -Selecting "pointed to" seems to have no effect. IDK what I'm doing wrong. I've tried this several times on different levels and usually it hasn't worked; I seem to recall once it working but can't remember if it was as intended or what the situation was.

I say either throw out the bundling level file with replay; or fix how this pointed to system is supposed to work.

Having the level data come with the replay seems very nice but it also seems like a hassle.  I assumed that "pointed to" means play the replay on a now altered level; in any case this is what I want. It's what I'm usually trying to do.
It also seems very redundant from a programming standpoint. I have 10 levels and 10 replays of those levels so I have those 10 level data files essentially twice. Maybe a way to improve this is in order?
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


Forestidia86

#1
Quote from: mobius on December 29, 2017, 03:34:27 AM
   -Selecting "pointed to" seems to have no effect. IDK what I'm doing wrong. I've tried this several times on different levels and usually it hasn't worked; I seem to recall once it working but can't remember if it was as intended or what the situation was.

AFAIK pointedTo should use the level file that is specified under $FILENAME in the replay file (usually first line of the replay).
Did you change the file name of the renewed level? Or do the replay files have other file paths under $FILENAME than where you have the renewed level? Then you have to change the file name/path accordingly in $FILENAME of the replay file as well to use pointedTo to play the old replay on the renewed level (the whole file path has to be right of course).
In total: The file path of the level file has to be the same as the one specified under $FILENAME in the replay file.

From my slim experience I found it actually quite obscure (lost in hotkeys) how it works in NeoLemmix but I can see how it can be useful for maintaining levels.
The good thing about having the level data in the replay is that you actually don't need to have the level to replay it and know for what it was meant for.
But yeah, it's a bit of a hassle to use old replay files on renewed levels.

Simon

#2
This is 2 separate issues: How to use the existing design, and whether to change the design.

Run old replay on new level in 0.9

Run the replay with pointedTo. This ignores the level's copy inside the replay file. The replay will instead play against the level named in the line $FILENAME of the replay file.

QuoteSelecting "pointed to" seems to have no effect. IDK what I'm doing wrong. I've tried this several times on different levels and usually it hasn't worked

Define "has no effect"/"hasn't worked": You click pointedTo and the level browser stays open? You click pointedTo, the browser closes, a game opens and replays, but it's not the desired version of the level?

As Forestidia explained, examine $FILENAME in the replay. Does it point to the correct level? Don't use Windows Notepad, it cannot display text files with Unix line endings understand Unix line endings, which is a 30-year-old bug. Use a reasonable text editor, of which there are many.

In particular, in the standard Lix distribution, Clam's levels sit in single/clam/, not in single/ClamLix/. I remember getting replays from mobius that point to single/ClamLix/. It's perfectly fine to have a separate working copy, merely don't get confused to where a replay points.

Why save copy into replay?

Yes, it is redundant, but I accept it nonetheless for convenience of level authors.

When author A releases small pack on the forums, player B sends replays back to A, then, since copies of the levels are saved in the replay file, A can always watch the replays. It was not necessary for A and B to agree on where the levels should reside in the level tree.

Furthermore, A can be 100 % certain which version of a level B has played. The editor timestamps levels inside the file (line $BUILT), but the entire copy is even better.

Improve stuff

The pointed-to level is nowhere explained when you run replay with pointedTo. I should display the pointed-to level path somewhere. This might have already helped with your issue.

I'm open to discuss save-level-into-replay-yes/no after we've fixed your problem with pointedTo.

I'm open to discussion to improve Forestidia's hassle to manage replays inside the replay browser. See issues #109 and #102.

-- Simon

mobius

#3
ok--my bad; it turns out the levels and replays causing this hassle were a cluster ****. When testing it on a brand new level everything works properly. The Pointed To function works exactly as I thought it would/should :thumbsup:

*I had wrong files names, titles, files in the wrong place, my computer wasn't plugged in etc..

While testing this I realized there's another unrelated issue I've been wanting to mention for a long time;

when you create a new level; the default directory is whatever directory you were in last. For both levels and replays. Maybe this isn't weird at all but often times I've found myself searching for my level later when I was only creating one or a few at a time. I guess I just need to pay more attention to where I am; but I expect to be asked where to save a level when I make a new level; not get automatically put into the place I just was. You can click "create level" anywhere
this is a problem with me just not being used to Lix's UI. I don't feel like getting into the whole "we're too used to bad UI" discussion right now.

One definite problem is when saving a replay it says: "saved to .../manual/" but it doesn't give the full path so sometimes I need to search for the replay.
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


Forestidia86

#4
It's good that your problem is resolved, mobius.

Quote from: mobius on December 29, 2017, 10:14:06 PM
when you create a new level; the default directory is whatever directory you were in last. For both levels and replays. Maybe this isn't weird at all but often times I've found myself searching for my level later when I was only creating one or a few at a time. I guess I just need to pay more attention to where I am; but I expect to be asked where to save a level when I make a new level; not get automatically put into the place I just was. You can click "create level" anywhere
this is a problem with me just not being used to Lix's UI. I don't feel like getting into the whole "we're too used to bad UI" discussion right now.

Yeah, that happened to me as well.
On one hand it's convenient to be able to have the file at a certain place without specifying a path but on the other hand I would actually expect access to the editor from the main menu and not from the level selection.

Quote from: mobius on December 29, 2017, 10:14:06 PM
One definite problem is when saving a replay it says: "saved to .../manual/" but it doesn't give the full path so sometimes I need to search for the replay.

Isn't it always at the same place: replays\manual\ ?

Simon

I, too, am happy to hear that mobius's replays work.

I'd still like to improve the replay browser. Very fruitful discussion. It'll be hard to pick what features are important, or whether we really want a full-fledged file manager. At the very least, I have to display more info.

-- Simon

Simon

Quote from: Forestidia
Quote from: mobius on December 29, 2017, 10:14:06 PM
One definite problem is when saving a replay it says: "saved to .../manual/" but it doesn't give the full path so sometimes I need to search for the replay.
Isn't it always at the same place: replays\manual\ ?

That's a parent directory. Showing "./replays/manual/" was a hackjob solution, it was better than printing a mere "done", but it's not ideal. The code, indeed, is already commented as a hackjob solution:


// This isn't particularly good, maybe return proper file


The real location is inside ./replays/manual/, autogenerated from the level path. Ideal solutions would print the exact location or even offer a save browser.

We already have a feature wish to rename replays, but even better would be to name manually-saved replays immediately on saving. Here, you're still 100 % certain why you'd like to save this replay, and can give the best possible name. I shouldn't disrupt this workflow.

-- Simon

Forestidia86

#7
Quote from: Simon on December 30, 2017, 03:10:51 AM
That's a parent directory. Showing "./replays/manual/" was a hackjob solution, it was better than printing a mere "done", but it's not ideal. The code, indeed, is already commented as a hackjob solution:

Yeah, I see now, it works like with solved, only that the parent is manual instead.