High score server

Got a cool idea that should be in R'n'D? Let's hear it!

Moderators: Flumminator, Zomis

User avatar
Holger
Site Admin
Posts: 4073
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

High score server

Post by Holger »

[This was a follow-up to a post of another topic, but should better get its own topic in this forum section.]

Well ... I'm currently working on something that goes a little bit in such a direction: A high score server for R'n'D, so you can also see other people's high scores, and not only your own (or those of your sister ;-) ). To prevent people from easily submitting fake high scores for arbitrary levels (using curl or a modified R'n'D program), R'n'D also sends the solution tape to the high score server, so it can replay the tape and validate the submitted score. The logical next step could then be to not only see other people's high scores, but also watch their solution tapes (a feature that maybe should be hidden a little bit, to prevent cheating, just like it is currently done with the reference solution tapes, if they exist ... but maybe it could just simply be offered to replay the games for each entry in the high score list).

Another thing that could be nice then would be an easy way to submit already existing personal tapes to the score server. In fact, I've already added such a feature as a command line option, to not only automatically test solution tapes, but to also submit the result to the score server right away. But it has to be executed for each level set at the moment... just submitting *all* personal tapes at once would probably be nicer... ;-)

Alternatively, you could just send me your zipped "tapes" folder, and I'll add it to the score server.

I expect a new major release of R'n'D together with the new high score server in about one or two months.
filbo
Posts: 647
Joined: Fri Jun 20, 2014 10:06 am

Re: High score server

Post by filbo »

Looking forward to that server setup!

Focusing on 'high scores' seems a bit silly since the scoring in RnD seems kind of irrelevant to the game. In quite a few levels, you have to collect exactly what's available, kill exactly which things you have to kill, etc. The only variable element is how much time it took you (and some levels don't even score that).

... but, I don't know what else could be focused on. Well, there's 'shortest time', which is probably almost identically equal to 'highest score', except in certain levels where there's an 'easy out' or you can actually solve the level...

Anyway, I was thinking these objections, then saw that you were also going to let everyone upload tapes. So for any particular level, one could look at a variety of solutions (perhaps, in many cases, nearly identical just because of level design; and in other cases, wildly different).

... so it would be nice to have some sort of measure of 'how different are these solutions' -- but that sounds like a job for some sort of AI or Machine Learning gizmo...

Here's a thing that could be quite interesting: 'show me both of these solutions overlaid on each other'.

How? Basically run the entire game engine twice, then meld them together 50-50. So for instance you'd see butterflies and spaceships set off on their courses in the normal way, while yamyams would quickly split into 2 half-transparent shadows of themselves. And so would the players.

Something like that can already be done by just running RnD twice, same level, loading different tapes, hitting 'go' at the same time -- but it's hard to do in sync, and they'll be side by side not transparently overlaid, and you certainly can't do things like slow them both down in sync to watch some critical section. (But then, the two solutions likely did the critical section at different times, so you would also want controls to 'run only game A for a while' until they're approximately sync'd again. Or maybe 'run only game A until the player reaches the same location as is current in game B'.)

Then of course if you can do 2x, why not 'show me every solution of this level in the database, all run simultaneously' :)
User avatar
Holger
Site Admin
Posts: 4073
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Re: High score server

Post by Holger »

Focusing on 'high scores' seems a bit silly since the scoring in RnD seems kind of irrelevant to the game. In quite a few levels, you have to collect exactly what's available, kill exactly which things you have to kill, etc. The only variable element is how much time it took you (and some levels don't even score that).

... but, I don't know what else could be focused on. Well, there's 'shortest time', which is probably almost identically equal to 'highest score', except in certain levels where there's an 'easy out' or you can actually solve the level...
Yes, that's right. So scores for "classic" R'n'D levels are mainly based on the "time score" given for the remaining level time that is left when entering the exit -- a concept that was directly taken from the game "Emerald Mine" (of course). But there's one main difference to how that game handles this: Emerald Mine also entered scores to the hall of fame for levels that were *not* solved, but where you got more than a certain score before you died (I think that threshold was a score of 100 points). I never liked that very much when playing the original EM game, because I wanted to quickly go on with the next try instead of having to wait for the high score screen to appear and leave it again. And the high score list was then populated with lots of lower scores for all those failed attempts to solve that level.

So I decided to only enter scores for solved levels to the high score list when I created R'n'D. Which effectively changes the scores to another incarnation of "who was the fastest successful player for this level", of course.

There are some more challenges: The original Supaplex, for example, does not have a scoring system at all. Therefore, in R'n'D, you only get score points for the "remaining time" left before the time reaches 1000 seconds (Supaplex does not have a time limit, so time is running forwards, not backwards).

Then there is Sokoban, with a similar problem: TIme is running forwards, with no time limit, which makes even less sense, because Sokoban is not an "action game", but pure thinking. Instead of counting seconds, counting steps would be the way to go, and show the number of steps needed to solve a level as the score (with lower scores being better scores).

In fact, I've already done these changes (in my working version). So Supaplex now gives a time instead of a score for the hall of fame, and Sokoban gives a number of steps instead of a score. (And the level editor got a new checkbox to choose if high scores should be rated by score or by time, as this can not always clearly decided from a given level, which might have element scores, but no time limit.)

The current implementation only shows scores of different players just like before (but with scores taken from the score server), but offering to download and replay the corresponding solution tapes seem to be the next logical step. However, your suggestions for replaying more than one solution tape in parallel to compare them seems to be a little bit too much for now. :-)
filbo
Posts: 647
Joined: Fri Jun 20, 2014 10:06 am

Re: High score server

Post by filbo »

> level editor got a new checkbox to choose if high scores should be rated by score or by time

Shouldn't that be a 3-switch between score, time, and moves? In Supaplex it's realtime; in Sokoban, number of moves is the original scoring metric and seems obviously correct. Regardless of how many minutes you ponder between moves. In fact the 'tape' of a Sokoban game should have no time element at all, just a sequence of moves, I think. (I say this without having played RnD Sokoban in a long time, and not checking it right now... :)
User avatar
Holger
Site Admin
Posts: 4073
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Re: High score server

Post by Holger »

Yes, exactly right. Supaplex and Sokoban will work as you described in the next version (and did not do that before, at least not the "Classic Sokoban" set, and especially not regarding rating for the "hall of fame").

Regarding the new switch in the level editor: Time and steps are considered to be the same, and are configured by a separate control (the "time or step limit" select box that already exists for a very long time). So there will be this new switch:

Code: Select all

[ ] rate time/steps used over score
It will be inactive by default, which is the old behavior of using the score in the high score list.

(I thought about auto-detecting it from the "no time limit" configuration setting instead of using an explicit new editor control, but there might be cases where it did not work, like a level without time limit where you have to collect as much gems as possible and bomb your way through lots of monsters to get to the exit, both adding to your final score.)
BryanFRitt
Posts: 219
Joined: Mon Nov 13, 2017 4:16 pm

Re: High score server

Post by BryanFRitt »

[ I had this idea earlier, but never got around to submitting the idea. :( This is what I had started typing... ]

Idea: Being able to submit victories, and post best scores/tapes online

Going for Score, then Time, then Filesize of tape...
For a (newly) completed level...
If newScore > currentBestScore
--this is possibly* the newBestTape, submit
else if newScore == currentBestScore
--if newLevelTime < currentBestLevelTime then
----this is possibly* the newBestTape, submit
--else if newLevelTime == currentBestLevelTime
----if newFileSize < currentBestFileSize
------this is possibly* the newBestTape, submit
else this is not a newBestTape, don't submit

*tape needs to be verified on server that it completes the stated level, etc...
Life is partially trying to strike a balance between generating new things/ideas, and making sure they are good/organized. These extremes can be said to between gibberish mess and nothing said/done.
BryanFRitt
Posts: 219
Joined: Mon Nov 13, 2017 4:16 pm

Re: High score server

Post by BryanFRitt »

filbo wrote: Wed Jun 30, 2021 9:47 pm in Sokoban, number of moves is the original scoring metric and seems obviously correct. Regardless of how many minutes you ponder between moves. In fact the 'tape' of a Sokoban game should have no time element at all, just a sequence of moves
Or Sokoban could have two sets of best scores; one for time, and one for number of steps. (Lower better for both, but only counting as a potential best tape when level is completed.) Actually, I suppose in a way this could also go for any R'n'D level too. (Question: Would a 'snap' count as a 'step'?) Perhaps as part of a tape stats file?
Life is partially trying to strike a balance between generating new things/ideas, and making sure they are good/organized. These extremes can be said to between gibberish mess and nothing said/done.
filbo
Posts: 647
Joined: Fri Jun 20, 2014 10:06 am

Re: High score server

Post by filbo »

I think of the 'steps' metric as more like 'moves' or 'commands'; that is, yes, a snap would be a step. Or to put it another way, anything which makes the game time engine go around.

On the high score server... if the game (with permission from the player) uploaded every successful completion of a level, the server could just keep all of them. You could go to a level and ask to see stats like how many completions, average number of steps, average time, average score, etc.; as well as player-best averages. That is, if I finished a level 5 times, my 5 scores would appear 5x in the 'score average', but only my best score would appear in the 'player-best score average'.

A level tape is maybe a few KB, max. The network traffic to send it to a server is trivial. The storage to keep it forever is trivial. I suspect if you were to somehow collect the tapes of every level ever played by anyone on RnD, the entire collection would fit on a $100 hard disk. (If the average tape is 5KB(*), one billion tapes fit on a 5TB disk...)

(*)The average tape in my /usr/share/games/rocksndiamonds/levels/.../tapes/... is 1539 bytes. The average tape in ~/.rocksndiamonds/tapes/... is 1611 bytes. So really, 3 billion tapes on a 5TB HD.

Except, well, I bet if you were to collect all the tapes for a single level and compress them, there would be a lot of similarity; they would compress incredibly well...
Anonycat
Posts: 47
Joined: Thu Mar 27, 2008 4:45 am

Re: High score server

Post by Anonycat »

BryanFRitt wrote: Sat Jul 03, 2021 12:26 am(Question: Would a 'snap' count as a 'step'?)
In Snake Bite, no levels have time limits, and the HUD timer (as opposed to the tape timer) always shows step count by default. From there you can see that snapping emphatically does not add to the step count.

On another note, should my collection of TAS tapes, optimized in 1-step mode and in some cases iterating through lots of random seeds until I found a suitable one that made the whole level work out with minimal delay, be eligible for inclusion on this? They're not the sort of thing you would expect to have to compete against if you were used to things like IL runs in other games, to say the least.
BryanFRitt
Posts: 219
Joined: Mon Nov 13, 2017 4:16 pm

Re: High score server

Post by BryanFRitt »

Anonycat wrote: Sat Jul 03, 2021 10:40 am On another note, should my collection of TAS tapes, optimized in 1-step mode and in some cases iterating through lots of random seeds until I found a suitable one that made the whole level work out with minimal delay, be eligible for inclusion on this? They're not the sort of thing you would expect to have to compete against if you were used to things like IL runs in other games, to say the least.
Maybe the user could add some notes to submissions to jot down anything that could be considered by some to be cheating, and/or there be some questionnaire about this.
Like
[ ] I used debug mode to speed up / slow down game during gameplay.*
[ ] I used the 1920x1080 theme to view more the level during playback, viewtopic.php?f=5&p=17278
[ ] I pressed pause a lot to think of my next move without increasing clock time
[ ] I previewed level with level creator
[ ] I have time limits enabled
[ ] I have use saved tapes to continue from previous playbacks
...
*(p.s. This could enabled by default on non-debug builds with a GUI to set it up)
Life is partially trying to strike a balance between generating new things/ideas, and making sure they are good/organized. These extremes can be said to between gibberish mess and nothing said/done.
User avatar
armanelgtron
Posts: 29
Joined: Sat Jul 25, 2015 8:25 pm

Re: High score server

Post by armanelgtron »

BryanFRitt wrote: Sun Jul 04, 2021 2:19 am [ ] I used the 1920x1080 theme to view more the level during playback, viewtopic.php?f=5&p=17278
Hmm, this question is a bit meh as-is, it excludes any other possible method - maybe someone is using a different artwork pack at a different resulution, or they have the "Small game graphics" option turned on.

Also, what would be considered "cheating" when submitting scores to a high score server and what wouldn't? For example, I like to play with 0 scroll delay, is that considered cheating since it differs from the default? How about a slower game speed?
Image
BryanFRitt
Posts: 219
Joined: Mon Nov 13, 2017 4:16 pm

Re: High score server

Post by BryanFRitt »

armanelgtron wrote: Fri Jul 09, 2021 5:23 pm Also, what would be considered "cheating" when submitting scores to a high score server and what wouldn't?
Instead of only being able to view the 'best' tape and having to decide for the user what is consider 'cheating', how about being able to view all submitted tapes for a level, and pick a sorting order. Like a table with rows sorted* by 'A', if tie sort* by 'B', if still a tie sort* by 'C', if still a tie sort* by 'D', ... include things that someone might consider as 'cheating'** as some of the columns. That way people can make up there own mind as to what they consider cheating. Although, if one were to try to do this, how could it be done with the current user interface including marking of tapes as having been down with possible cheats? Creative compromise on this somehow?

*ascending/descending/???

**Examples of whatever extreme they might want to consider 'cheating', etc... using settings other than the default(maybe settings(and R'n'D version) should be submitted as well as the tapes?), or anything goes as long as the level isn't changed and it is possible to move like the tape shows.

Also other things to consider:
Downloading these tapes shouldn't overwrite the users own tapes.
What if a user wants to unsubmit a tape, or tries to replace/update a previously submitted tape of theirs with a newer, older, or identical tape?
What about being anonymous/privacy concerns?
Life is partially trying to strike a balance between generating new things/ideas, and making sure they are good/organized. These extremes can be said to between gibberish mess and nothing said/done.
User avatar
Holger
Site Admin
Posts: 4073
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Re: High score server

Post by Holger »

@ BryanFRitt:
Idea: Being able to submit victories, and post best scores/tapes online
What you described is more or less how level rating for the high score table will work in the next version, with some differences in detail (like rating for either score or time/steps, and not taking tape file size into account, as this is implicitly already done by time/steps).
*tape needs to be verified on server that it completes the stated level, etc...
Yes, score will be uploaded together with the solution tape to verify the result.
Or Sokoban could have two sets of best scores; one for time, and one for number of steps.
I have decided to not punish people playing Sokoban levels for thinking about what to do next (or being forced to go into pause mode after each step to think about the next step). So just steps are counted, and you can take any time you want between steps to think what to do next. However, this time is recorded on tape nevertheless, so replaying it shows "natural playing", and not some sort of "artificial playing" without any delay. If you still want to record "perfect solution tapes", you are free to use single-step mode to automatically go into pause mode after each step, therefore recording solution tapes without delay between moves.

@ filbo:
I think of the 'steps' metric as more like 'moves' or 'commands'; that is, yes, a snap would be a step. Or to put it another way, anything which makes the game time engine go around.
That sounds reasonable. However, when using the step counter in R'n'D, "snap" actions are indeed not counted as a "step". Maybe this should be changed.
On the high score server... if the game (with permission from the player) uploaded every successful completion of a level, the server could just keep all of them.
Yes, indeed.
You could go to a level and ask to see stats like how many completions, average number of steps, average time, average score, etc.; as well as player-best averages.
Stuff like that could be calculated and displayed from the stored tapes, yes.
That is, if I finished a level 5 times, my 5 scores would appear 5x in the 'score average', but only my best score would appear in the 'player-best score average'.
Currently, only the best result for each player and each level will be returned from the score server to the client (that is, R'n'D) to be displayed on the high score screen.

The high score server will keep all submitted tapes for now, as I don't expect a such high number of score/tape submissions that disk space will become a problem...

@ Anonycat:
In Snake Bite, no levels have time limits, and the HUD timer (as opposed to the tape timer) always shows step count by default. From there you can see that snapping emphatically does not add to the step count.
It may also be possible to add a checkbox for this in the level editor, using a reasonable default value.

What do you think about it?
On another note, should my collection of TAS tapes, optimized in 1-step mode and in some cases iterating through lots of random seeds until I found a suitable one that made the whole level work out with minimal delay, be eligible for inclusion on this?
Yes, sure, why not? At least, that's what I would say without much thinking about it. :-)
They're not the sort of thing you would expect to have to compete against if you were used to things like IL runs in other games, to say the least.
That's definitely right, but as you will (some day) be able to replay the tape to each score entry, this could be cool to see how on earth it was possible to get such a high score / low time on a given level.

Adding hints to the tape which "cheating" stuff was using when recording it would make it more clear under which circumstances a tape with an unexpectedly high score or low time was recorded.

@ BryanFRitt:
Maybe the user could add some notes to submissions to jot down anything that could be considered by some to be cheating, and/or there be some questionnaire about this.
This could be set automatically, as all required information is already available to the game engine.

The funny thing is that I just quickly implemented something like this the same day you posted this, after reading Anonycat's post about tool-assisted speedrun (TAS) tapes the day before.

@ armanelgtron:
or they have the "Small game graphics" option turned on
That's what I currently use to detect "overlarge playfields" while recording tapes (alternatively: playfield sizes being at least twice as large as the default playfield size).
Also, what would be considered "cheating" when submitting scores to a high score server and what wouldn't?
Opinions probably differ largely in this regard. Just think about "pause mode" being never available in games like BoulderDash or Emerald Mine or Supaplex, but feel absolutely natural to me and in no way as "cheating". Single-step mode may look like a typical cheat mode, but if you accept pause mode as "not cheating", you can more or less emulate single-step mode simply by using pause mode after each single action (not in a frame-accurate way, of course, but definitely in a way that I could solve levels that I could otherwise not solve).
For example, I like to play with 0 scroll delay, is that considered cheating since it differs from the default?
Some level sets (the EMC collection) default to zero scroll delay by configuration.
How about a slower game speed?
Very good point, and definitely not a trivial case. Using speed debug keys to play a level in 1/10 speed, this could probably be considered as cheating. Using "original Supaplex speed" (35 fps instead of the usual 50 fps) is definitely slower than the default, but may be considered "not cheating" here.

@ BryanFRitt:
Instead of only being able to view the 'best' tape and having to decide for the user what is consider 'cheating', how about being able to view all submitted tapes for a level, and pick a sorting order. [...]
That's more or less how my high score server's administration frontend looks like, but at the moment it is not intended to be publicly available. But I may change this...
**Examples of whatever extreme they might want to consider 'cheating', etc... using settings other than the default(maybe settings(and R'n'D version) should be submitted as well as the tapes?), or anything goes as long as the level isn't changed and it is possible to move like the tape shows.
Currently, I only add the R'n'D game version used to upload (not necessarily record) the score tape. Also submitting the personal settings seem to be a bit much (and probably not appropriate).

A last (but not least important) point is what filbo wrote:
[...] if the game (with permission from the player) uploaded every successful completion of a level [...]
I currently plan to enable submitting scores and score tapes by default, and provide an option to disable using the score server. This is the old "opt-in vs. opt-out" discussion, and I haven't decided yet which way to use.

Another aspect is the "privacy concern". Is a score (plus score tape) plus player name personally identifiable information (in the sense of the DSGVO/GDPR in Europe)? Or is a player name a pseudonym that can not be used to trace back to a natural person? For example, nobody will stop you from submitting scores and score tapes as "Holger" or "Artsoft" or whatever player name you have chosen, and there will be no unique "account" style information to be able to use the score server.

Then there's still the client's IP address, of course (which *is* personally identifiable information in the sense of the DSGVO/GDPR), but this could easily be anonymized on the server, to still be able to see from which country a score was submitted, but not to be able anymore to track this back to a person's internet account at a given time...
filbo
Posts: 647
Joined: Fri Jun 20, 2014 10:06 am

Re: High score server

Post by filbo »

> not taking tape file size into account, as this is implicitly already done by time/steps

I think that was essentially aimed at single-step vs fluid play. A tape where someone held down 'right-arrow' for 5 seconds and moved 40 cels to the right, is different from one where they hit 'right-arrow' 40 times in single-step mode to move that many single cels. The tape contents differ: one has a 'key down for 40 cels' movement time', the other has 40x 'key down for a short time'; so the latter is longer.

That said, single-step tapes can be post-processed to merge adjacent same actions, making them shorter and less distinguishable from fluid tapes. I think a careful analysis would probably still show differences, since (I think, and it may be engine-dependent) single-step tapes will always show key events on N-frame boundaries while fluid tapes will have key events anywhere in the frame cycle. Well, except, your post-processor could probably add intentional randomness to the key up/down transition points, as long as they wouldn't affect the resulting player action. Then it would still be possible to distinguish, by some sort of statistical analysis of the key timings, but the post-processor could even be written to anticipate that...

All of my tapes are done with whatever flavors of 'cheating' I felt like using at the time / given the situation. I don't look at most RnD levels as 'playable' in normal fluid realtime. I'm here to solve puzzles, not show off my manual dexterity. Even if sometimes the 'puzzle' to be solved is 'what crazy sequence of rapid manual dexterity would have allowed me to get out of this alive?!' (like: dancing through a dense cloud of bugs & spaceships to get across a crowded room...)

> client's IP address

is readily spoofable in various ways, like VPNs or doing your uploads via wifi at a cafe. It can certainly be considered PII since many users won't obscure it in any way; but cannot at all be considered reliable identifying information.

I think anonymous upload, opt-out (on by default), is fine. And 'player name' is an anonymous ID (that is, they don't have to be untagged).

I also think that people should have the option to do attributed anonymous upload. That is: have a passworded (or whatever -- 2FA?) login to the server, and their uploads are tagged to that server username. This would be opt-in, something that someone who's particularly proud of their 'achievements' could use to establish some level of 'ownership'.

It raises a problem of attributability:

Suppose I played for a while, uploading some hundreds of tapes, in the default anonymous mode. One day I thought 'gee, I should get a login on the server and tag those tapes as mine'. How does the server know that everything I previously generated and uploaded should be tagged to me? It can't just be 'look, I have these same files on my local machine' because once they were uploaded, anyone could have downloaded them and then tried to claim them.

Or likewise, suppose I played for a while, then Holger added all these features. How do I verifiably attribute my previous saved tapes as mine when I decide to upload them?

That also raises the question of opt-in-or-out to uploading prior tapes. It's one thing for newly generated tapes to be uploaded, once the capability exists; quite another (I think) to survey and automatically upload one's existing repository of personal tapes. For instance, what if some of them were done with lots of 'cheating' and others weren't, and I made a personal decision that I only wanted to upload tapes which were done 'naturally'? Or -- back before certain features were added to RnD to make it easier, I had copied some downloaded 'solution tapes' into my personal .rocksndiamonds/tapes/... hierarchy so that I could easily play them back. Others probably did that; any random person's collection of 'personal' tapes could easily contain any number of imported tapes they were using to study others' play. Which implies that the server should be able to recognize identical tapes and do something sane; e.g. 'oh, that tape is from the solution tapes distributed in the game archive itself -- ignore'.

SO, I think when one first runs the new 'upload tapes' edition of RnD, it should survey existing tapes and dialog with the user about whether to upload those. Which also gives an opportunity to dialog about uploading future tapes in realtime. In which case, the default (opt-in or opt-out) is less important since most users are going to be explicitly asked the question.

And finally, if 'most' are going to be asked, might as well make it 'all': even if there are zero existing tapes to consider uploading, still bring up the opt-in/out dialog on first play. 'This game anonymously uploads successful level completions to its server, where other players can browse them. Click here to disable this: [disable]. Click here to take ownership of your uploaded levels [create player account (free)]'

... or something like that.

Uploads could be tagged with metadata anonymously indicating who uploaded them. That is: generate a UUID the first time the game with these features is played. Send that along with any uploads. Don't display it in the server, but if this player ever creates a server account, what they previously uploaded can be swept into that account. This still has the attributability issue (can't tell if what they uploaded was actually their play). Only levels played-and-uploaded in realtime are strongly attributable. (Even then, it could be a friend sitting at the device playing for me -- but that seems like a less significant issue, more a personal matter for me and my friend. It does perhaps imply a way to repudiate or transfer tapes from one server user to another...)

=====

Sorry to be jabbering on about making what seems like a kind of simple thing horribly complex... These are things that I think could end up being important in some way or other, and should at least be thought about, even if eventually discarded...
User avatar
Holger
Site Admin
Posts: 4073
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Re: High score server

Post by Holger »

filbo, first of all: Thanks for your long post, which contains a number of thoughts I already had regarding the new high score server. There are quite some issues that should best be addressed *before* the server goes live, and it helps a lot to discuss such potential issues, as it is easy to overlook something that is either hard to correct later, or that may cause damage if not considered before implementing the server.
That said, single-step tapes can be post-processed to merge adjacent same actions, making them shorter and less distinguishable from fluid tapes.
If this refers to cheating (by changing existing solution tapes using techniques that could be considered cheating to tapes that do not look anymore like that), I don't mind that much. There is no way to prevent this, as every potential measure against it can easily be counteracted by changing the program code. And R'n'D will even provide easy command line options to upload existing tapes, so this would be really easy. But I don't think that this will be a big problem.
All of my tapes are done with whatever flavors of 'cheating' I felt like using at the time / given the situation. I don't look at most RnD levels as 'playable' in normal fluid realtime. I'm here to solve puzzles, not show off my manual dexterity.
Exactly, and I could not agree more here!

That's why R'n'D offers all these "options" (that others may see as cheating, but I don't care much)!
It can certainly be considered PII since many users won't obscure it in any way; but cannot at all be considered reliable identifying information.
Exactly true. This is more of a legal issue, if I want to conform to GDPR (which I should, and usually try to; else I wouldn't have come up with this here).
I think anonymous upload, opt-out (on by default), is fine. And 'player name' is an anonymous ID (that is, they don't have to be untagged).
That's exactly what I think about this, too.
I also think that people should have the option to do attributed anonymous upload.
And that's also what I was thinking about! To try to prevent what I have described ("nasty" people using already "taken" user names, or doing it just by accident).
That is: have a passworded (or whatever -- 2FA?) login to the server, and their uploads are tagged to that server username.
And here things would start being complicated, and for two reasons: First of all, it would require some sort of "real" account system (to prevent others using your account), rather than just tagging your score with an arbitrary string that happens to be your username in R'n'D. Then, it would raise the GDPR issues again, as such an account would be PII, which that arbitrary string is not.
This would be opt-in, something that someone who's particularly proud of their 'achievements' could use to establish some level of 'ownership'.
Yes, exactly.
It raises a problem of attributability: [...]
User names could indeed be "secured" by an optional "secret token" (password), but the problem remains how to do this after already having uploaded lots of tapes (preventing others to claim those tapes as theirs).
For instance, what if some of them were done with lots of 'cheating' and others weren't, and I made a personal decision that I only wanted to upload tapes which were done 'naturally'?
If you are able to distinguish your own tapes regarding such aspects, just upload those tapes you want. R'n'D will offer a command line option to upload arbitrary existing tapes to the server.
Or -- back before certain features were added to RnD to make it easier, I had copied some downloaded 'solution tapes' into my personal .rocksndiamonds/tapes/... hierarchy so that I could easily play them back. Others probably did that; any random person's collection of 'personal' tapes could easily contain any number of imported tapes they were using to study others' play. Which implies that the server should be able to recognize identical tapes and do something sane; e.g. 'oh, that tape is from the solution tapes distributed in the game archive itself -- ignore'.
The server already does this. :-)

It works like this: For each solution tape (score tape), two hashes will be generated: A hash of the tape file itself, and a hash of the played actions until the level is solved. This is used to detect already known tapes (even if some metadata bits have changed), to reject them. (And no, it does not work if you craft existing tapes so that they result in different game actions, like adding a "drop" action where it will be ignored by the game engine, but changes the "actions hash".)
SO, I think when one first runs the new 'upload tapes' edition of RnD, it should survey existing tapes and dialog with the user about whether to upload those.
This would be the perfect solution, but would require some new "extended dialog" (that would also be useful for other things where the current "door dialog" is too small).

My idea was to just add a setup option "upload all my tapes" (that might disappear after it was used). :-)
Which also gives an opportunity to dialog about uploading future tapes in realtime. In which case, the default (opt-in or opt-out) is less important since most users are going to be explicitly asked the question.
That would also be the perfect solution with regard to the GDPR.
Uploads could be tagged with metadata anonymously indicating who uploaded them. That is: generate a UUID the first time the game with these features is played.
The problem with this could be people playing R'n'D with the same user name on different devices, which would then get different UUIDs. :-/
Sorry to be jabbering on about making what seems like a kind of simple thing horribly complex... These are things that I think could end up being important in some way or other, and should at least be thought about, even if eventually discarded...
Definitely yes! It's highly appreciated! :-)
Post Reply