Retroarch: [Feature request] "Most Played" tab (content sorted based on playtime log)

Created on 20 Apr 2019  ·  13Comments  ·  Source: libretro/RetroArch

Now that we have per-game playtime logging as per @jdgleaver's contributions (thanks a lot once again!), it would be interesting and akin to what happens on several systems - notably the 3DS and even the Switch to some extent - to have a tab that displays a list of content sorted by overall playtime.

A playtime diary basically, with content listed (and possibly numbered ) according to your playtime logs, but with the ability to also select and run content like with the other playlists.

feature request

All 13 comments

Would this be needed in addition to the history playlist, or is a sorting function for the history playlist sufficient?

having an option to sort history by playtime seems like a good way to do it. Conversely, I thought having an option to automatically add your top 10 playtimes or whatever to Favorites would be similar.

I'll say my preference although of course this is open to debate. My idea is to have it a separate tab, because Favourites, History and this new implementation would then serve three different and equally useful purposes:

  • History is for the latest content you have run (a purely chronological list);
  • Favorites is the content you particularly liked and manually chose to include;
  • Most Played would be a list of titles exclusively sorted by playtime (because of this I was thinking of even having the content numbered, exactly like on the 3DS Diary).

The way I see it, the ideal scenario would be to have them co-exist as unique tabs because of these separate functionalities.

the problem i see with adding more tabs is that people already complain about the number of tabs.

I understand your concern. At the same time, people do complain about virtually everything and this aspect could easily be remedied by making the “Most Played” Tab:

  • not visibile by default (manually toggleable);
  • and most importantly be displayed only if total per-content playtime logging is enabled (another option that is OFF by default right now).

the problem i see with adding more tabs is that people already complain about the number of tabs.

I think a Most Played tab is the cleanest sounding solution, it should of course include a toggle to enable/disable it.

I quite like this idea.

I'm currently away for Easter week and won't be writing any code, but if no one else wants to work on this I don't mind adding it to my TODO list for when I get back.

I think this would be great. I love how Steam shows me how much time I've wasted per game!

I posted a small bounty on BountyHub for this :)

Perhaps it would be best to post bounties on Bountysource instead, since all libretro bounties are currently being hosted there. Gonna wait for a decision on this and then I'd be more than happy to follow up and add something to @harperd3d's initial contribution.

I thought about this a bit more. The likely inconvenience that would stem from having a separate "Most Played" tab is that, theoretically, this tab would have to parse and display all content you have ever recorded a playtime log for.

This would presumably result in a very long list of entries, some of which might display less than a second of actual playtime (for example, content that was just quickly tested and then forgotten about). Also, I'm not sure about the performance hit that parsing all this data would cause.

Considering all of the above and given that after https://github.com/libretro/RetroArch/pull/10434 we now have a "Sorting Method" option in the Playlist Manager that allows to decide the sorting approach for each playlist, maybe this request would be better addressed by having the following:

  • two new sorting methods, "per-core playtime" and "aggregate / total playtime", based on the respective type of playtime log available on RA;
  • an optional per-playlist toggle inside the Playlist Manager to append numbers to each entry, basically enumerating each piece of content in that playlist from top to bottom.

This would prevent any extra clutter from being added to the Menu, while still providing this functionality in a way that most resembles the Playtime "diary" found in other systems (3DS for example)

@jdgleaver - What do you think about it? You had expressed interest in the original idea, but maybe this solution is cleaner / more sustainable?

@Ryunam Crikey - I can't believe this issue is a year old... Yes, I know I said I'd look at this (it's still written on my TODO list, in fact) - sorry for neglecting it...

Your suggestions make a lot of sense, but there are issues with sorting a playlist by runtime. Since runtime is stored in separate files (and not in playlists), it means the corresponding file for each entry in a playlist would have to be parsed before any sorting could be done. This is pretty rough - for a large playlist with many items that have been played, the loading time would be horrible.

I think the original idea of having a separate 'most played' playlist is more practical - since this would be a special case, the actual runtime could be written to the playlist itself, making loading/sorting very fast. The number of entries is not really a concern - it would work just like content history (with a user-set limit on the max number), with no performance issues.

I guess I need to give the actual implementation some more consideration...

Thank you for your comment! Indeed I had not considered those issues that you're bringing up...

In general I quite like the fact that runtime logs are completely separate from playlist entries, because that way the actual playtime is calculated based on the filename of the game and is not tied to the name of the entry itself. You can have multiple playlist entries for a certain title (for instance, the same piece of content associated with different cores) and still display one aggregate playtime count for that particular content.

I will be definitely looking forward to any future development on this front. It's no crucial feature by any means, but like @harperd3d I sure love taking a look at how much time was invested (or wasted) on a per-game basis... :)

Was this page helpful?
0 / 5 - 0 ratings