Scrolling Hall of fame on Android is impossible

Found a bug in R'n'D? Report it here!

Moderators: Flumminator, Zomis

Post Reply
mat
Posts: 62
Joined: Sun Sep 20, 2020 8:24 am

Scrolling Hall of fame on Android is impossible

Post by mat »

Whenever I want to scroll (swipe) high-scores, the game always goes back to the main menu. There is no way to look at further results.
User avatar
Holger
Site Admin
Posts: 4073
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Re: Scrolling Hall of fame on Android is impossible

Post by Holger »

Yes, that's right -- scrolling the high score entries only works with the keyboard (as it was built that way a long time before touch screens even existed).

I'm not very happy with the high score screen for a different reason: It is not immediately obvious that you can scroll more entries at all, as there is no scrollbar as on all other screens that have more entires than can be shown on one screen. That's because the "hall of fame" was designed with the original Emerald Mine game in mind, where the high score entries were scrolled by using the joystick.

(But that is probably not a problem anymore for users of today's graphical user interfaces, which cripple scrollbars more and more for reasons completely unknown to me. For example, one of the worst aspects of the general user-unfriendlyness of Apple's graphical user interfaces is a window full of icons where you cannot say if there are more icons available unless you attempt to scroll them. And *if* there are more icons when you attempt to scroll, you get a super-thin scrollbar which is hard to handle, so you are forced to use either the mouse wheel or swipe gestures. But you can find such degenerations of user interfaces on all systems today, unfortunately, as people apparently prefer to use their notebooks, desktop computers and workstations like smartphones. Sorry for the rant! :-) )

Regarding touch scrolling in general: Yes, I should add support for it in R'n'D. This would be a bit more work, as all controls were created "from scratch" and do not use support by GUI libraries on the different platforms R'n'D works on...
filbo
Posts: 647
Joined: Fri Jun 20, 2014 10:06 am

Re: Scrolling Hall of fame on Android is impossible

Post by filbo »

This reminds me of a high score issue I've been meaning to ask about for a while: when I play a level more than once, it only ever records one high score for me -- retaining the higher one, of course.

I have this vague sense that there might have been or be a setting which controls whether a single username gets one or multiple entries in the table. I also think it might have been 'multiple' in the past and I fretted about my name wiping all others off the list, and you changed it.

Ideally I'd want it to do some clever-ish management, like: let one user fill the whole board, if they're the only name. But if there are 10 total entries and player A has them all, let player B get on the board with a lower score, bumping off A's lowest. Let B encroach up to 5 entries. Let C encroach up to (up to where no player has more than a single count advantage, i.e. A:4 B:3 C:3, or if C started playing when it was A:9 B:1 then it might end up at A:5 B:1 C:4, if B didn't play again)

But if that's too complicated, then just clamp it at: one player name shall have up to, and no more than, 3 entries in the level's high score board.

===

Regarding scrollbars, ugh, yeah. I especially hate the ones that disappear when not moused near. The size of the 'thumb' on the bar is important information: what fraction of the whole document you're currently looking at. Hiding that is terrible UI behavior.
User avatar
Holger
Site Admin
Posts: 4073
Joined: Fri Jun 18, 2004 4:13 pm
Location: Germany
Contact:

Re: Scrolling Hall of fame on Android is impossible

Post by Holger »

This reminds me of a high score issue I've been meaning to ask about for a while: when I play a level more than once, it only ever records one high score for me -- retaining the higher one, of course.
That means that you are using a global (system-wide) scores directory for R'n'D that exists in the path specified by "RW_GAME_DIR" in the game (which can be set in the top-level Makefile and which is set to "." by default).
I have this vague sense that there might have been or be a setting which controls whether a single username gets one or multiple entries in the table. I also think it might have been 'multiple' in the past and I fretted about my name wiping all others off the list, and you changed it.
Yes, that's right, if I remember correctly. This is a fairly recent change (not sure when I changed that ... it is not yet changed in 4.0.0.0, but is in 4.1.4.1); before, you had to set "SCORE_ENTRIES" to either "ONE_PER_NAME" or "MANY_PER_NAME" in the top-level Makefile.

With the current version, R'n'D checks for a global scores directory and uses it if it exists, either uses the "scores" directory in the user's personal R'n'D data directory.

The idea is that when you only play against yourself, you probably also want more than one high score entry (to see your improvements), while you may not want one user to flood the global high score list with 100 entries of the same player, therefore using only one entry per user in this scenario.

I plan to extend this a little bit, to add a setup option to decide if you want to see multiple entries of your own player name in the high score list, even if there are entries of other players. This seems to be a useful addition to me now that it is possible to have multiple local players within R'n'D (not system-wide, but within your own personal data directory). Imagine a family PC or tablet or FireTV stick (or any other device running R'n'D that is used by more than one person) where the new multiple players feature is used. Then you have exactly the same situation as before with a multi-user installation.

This new setup option would then record the player's score entries in a separate file, to be able to show the resulting high score table depending on the current setup option. That way, as an example, player one on the family PC could see his training results in his multiple-entry high score table, while player two could see the best scores of each family member, without the "power player" having nuked all entries from the list with his 100 score entries that are all better than those of the rest of the family. ;-)
Ideally I'd want it to do some clever-ish management
The current approach indeed tries to be clever, but it may not work well for all situations, so a setup option like described above might be the best here.
Regarding scrollbars, ugh, yeah. I especially hate the ones that disappear when not moused near. The size of the 'thumb' on the bar is important information: what fraction of the whole document you're currently looking at. Hiding that is terrible UI behavior.
Exactly. The Mac always was worst of all systems here, with the exception of a short time window. Before (for many years or even decades), Mac users had to cope with a scrollbar button that was always square, regardless of the amount of data to be displayed (even if it was only a single pixel that was not shown), while other systems (like Amiga or Unix) already had normal, usable scrollbars for a long time (and even those crazy, jumping scrollbars on Windows were not as worse as on the Mac). With Max OS X, they finally fixed their scroll bars, just to throw them away again after less than ten years (if I remember right). Now you have these nonsense "no scrollbars" defaults, but at least you can get back the naked scroll bar, while the nearly equally important scroll buttons are still gone (and won't come back, as Apple says). I have no freakin' idea why they deliberately crippled their graphical user interface that way... :evil:
filbo
Posts: 647
Joined: Fri Jun 20, 2014 10:06 am

Re: Scrolling Hall of fame on Android is impossible

Post by filbo »

To some extent the whole discussion about high scores seems silly to me, as the 'scoring' system in RnD seems like a silly side-effect... but then I do feel some curiosity about what effect it had when I redo a level using a much faster method. So it does bother me when only one score is retained and I can't even see the one previous score...

The current split between 'you can have exactly one score' in multi-user mode vs. 'you can have all the scores' in home-directory mode seems too stark.

Here's what I would propose; which I think is simple enough that it requires no user settings:

(1) as long as there are empty slots in the score table, you can have another slot (insert in the right place and end algorithm)

(2) if the table is full, count how many slots each user currently has. you can only have an additional slot if you are not currently the person with the most slots. you can have another slot if you share the highest number with at least one other user: this promotes churn even in an otherwise static situation.

(3) if you're gaining a slot from someone else, delete that person's lowest score

(4) if you aren't gaining a slot, delete your lowest score

(5) insert the new score in the right place

so for instance if person X has all 100 slots, person Y can constantly have a new slot until they reach 50 (now X:50 Y:50). and one more (now X:49 Y:51). now Y can't have another slot until X plays again (X:50 Y:50). X can have 2 consecutive new slots until we're back to (X:51 Y:49).

none of this really matters unless there are hundreds of users competing for those slots, because who replays the same level tens of times?

this algorithm works fine on both a shared global file and a personal local file (then you're the only user so it always comes up 'yes, have a slot')

AND: each time a high score is gained, display the fact, including scores beaten, something like these (depending on which thing you did):

Code: Select all

New top score!      12345         [only score in table]

New top score!      12345         [took top score away from yourself]
You beat your best: 12001

New top score!      12345         [took top score away from someone else]
You beat your best: 12001
You beat Holger:    12222

New high score!     12345         [beat own best score, not top score]
You beat your best: 12001
Top (Holger):       13456

New high score!     12345         [new score in table, not best]
Your best:          13003
Top (Holger):       13456

New high score!     12345         [new score in table, not best]
Top (you):          13456
This display should be integrated into existing end-of-level stuff, not add a new popup to dismiss...
Post Reply