[Theme Changes] Attention Theme Makers: Upcoming Game Collections in ES
-
@pjft FYI I finally wrapped up the theme variables feature and submitted it. The main advantage that it has in relation to your work on this is the default theme functionality. Themes will be able to specify a default theme that will be used if a matching system theme is not found. The default theme can reference logo images and if they are not found, then text will be used. I also added additional theme options for the logo text so that the font and color can be set.
-
@UDb23 Thanks for the feedback- I think the suggestion looks good.
Once again, this is just my opinion - I am in no way representative of the "general consensus" about the Carbon theme and how it should be. I appreciate your effort looking into this! :)
@jdrassa That sounds great! That will effectively allow me to do a few more interesting things in stage 2 - namely allowing people to choose whether their custom collections should be displayed at the top level (as a system, using the default theme) or be grouped as subfolders under the
custom-collections
theme folder.Thank you all, and great work!
-
@pjft: I've been out of the loop for a week or 2, but this sounds really good.
One question though, if the "All Games" list is just a list of every game on your RPi, how does it specify which Console/Arcade System the game belongs to? Are they just listed alphabetically, or can you list them out in Consoles? If you can do Consoles, how are they Consoles ordered? Are they only alphabetical, or can you list them by date?
Is there another element you can add, so you can display the Console logo on the theme somewhere so you know at a glance what Console the game is from?
I'm thinking about games that might be on multiple Consoles. If you listed out TMNT games alphabetically, you would have arcade, snes, megadrive, nes, gameboy, mastersystem, etc games all mixed together, so you would need a way to tell them apart.
-
@mattrixk Hi!
These are great questions, and my answers are not exactly what you're looking for, but hopefully close - or reasonable - enough. :)
First of all, this video might help you best understand how the gamelists will work for most cases you're describing:
Now that we got that out of the way, let me answer your questions to the best of my ability:
- One question though, if the "All Games" list is just a list of every game on your RPi, how does it specify which Console/Arcade System the game belongs to? Are they just listed alphabetically, or can you list them out in Consoles? If you can do Consoles, how are they Consoles ordered? Are they only alphabetical, or can you list them by date?
The console name is, for the time being, appended to the game's name, as you see in the video. They are listed alphabetically, though all gamelist manipulation features are present - you can sort them by times played, ratings, name, etc. If there's a sorting method - or filter - for it, you can use it.
You cannot - at least for the time being - filter by console, though that seems to be the equivalent of navigating to the system view for that console? Meaning, that use case is perhaps already catered for (i.e. if you want all MegaDrive games, you currently go to the MegaDrive system)?
Sorting by console is not possible at the moment, at least. That being said, same reasoning applies - currently navigating the current systems' gamelists is kind of equivalent to an "all games" list split by different consoles.
Tell me if I'm missing any particular use cases here in these. It's not that these are not possible to implement, but I'd want to make sure there is a clear use case that we're not currently catering for, before investing the time and adding more customization to ES at this stage. Let me know.
- Is there another element you can add, so you can display the Console logo on the theme somewhere so you know at a glance what Console the game is from?
:)
So, right now, the way to distinguish them is by reading the console name after the game name. I also think a console icon theme element would make a lot of sense - both in the list and/or in the game details metadata.
That being said it's not going to happen right now.
The main reason for it being that you probably remember that whole thread on favorites that went very quickly to "we should be able to customize these in several different ways" and ended up with several great ideas but no consensus was reached and so it quickly died.
I'm purposefully keeping the scope of these current changes fairly well defined and as narrow-but-useful as possible, so that we don't get lost in these design discussions that - while relevant and important - end up adding a lot more focus on the things that are missing than on the things that we are getting, and we end up not satisfying anyone. :)
We can take those decisions at a later stage if/when relevant, but they shouldn't block what is already a meaningful change (and, hopefully improvement) to happen. That way, if/when we decide what to do, it'll be easy to add it on as a future development - icons, backgrounds, colors, images, whatever. But it doesn't need to block this from happening first.
On a personal note, though, I honestly believe that no development in that area will happen until there's either a firm decision made by the theme makers as a group on what'd be helpful and useful, and how, and then someone to implement it. Or, alternatively, someone on the development end with a clear vision of how it really should look like, and who'd come and make it happen. Not everybody would be satisfied, but that would likely be short-lived :)
My 2 cents.
Let me know if this addresses your main questions or concerns, but I'm keen on hearing more from you and others on this matter!
-
On a personal note, though, I honestly believe that no development in that area will happen until there's either a firm decision made by the theme makers as a group on what'd be helpful and useful, and how, and then someone to implement it. Or, alternatively, someone on the development end with a clear vision of how it really should look like, and who'd come and make it happen. Not everybody would be satisfied, but that would likely be short-lived :)
The time is more than ready for a standarized favorite system. It was really funny and is still astonishing to see devlopment on different solutions, that are done by different people.
Your branch shouldn't be considered if it's usefull or not. It is the best answer of a question that many many user asked before. Why? It just works like it should with one button press. Some solutions for ex. by @Zigurana were also available but were treated like an extra option.Personally I have no problem to exchange precompiled binaries and test out. I hope, that an
binary-archive
encourage people to try out new branches. And I also hope that the theme creators will implent this feature in their builds - that's essential for the accecptance of the casual user.My cent on personal notes
-
This is awesome!
-
@pjft said:
The console name is, for the time being, appended to the game's name
That seems like a perfectly reasonable solution. A very simple one that I didn't think of. I like it more than any other option I did think of.
if you want all MegaDrive games, you currently go to the MegaDrive system
Hahahaha oh my, I didn't even consider that, but it seems pretty obvious now that you mention it. I don't think I'm getting enough sleep.
Tell me if I'm missing any particular use cases here in these.
Nope, I'm pretty sure you knocked it on the head with "if you want MegaDrive, go to the MegaDrive system".
I'm purposefully keeping the scope of these current changes fairly well defined
I am well versed in Mission Creep, so keeping the scope tight is a great idea.
Thank you for taking the time to answer my queries. I do have another question or 2 about this if you're not sick of me yet:
-
Is there a Windows version of this "All/Last/Fav" Mod floating around that I can have a play with? If so, does it include @jdrassa's z-index stuff?
-
In regards to the
Custom Collections
, have you worked out how they will be created? eg: Say I wanted aBatman
collection, how do I go about naming and filling the collection? Do I have to create sym-links to all the Batman games, will there be checkboxes or something, will it use a new metadatafilter
tag, or can I just tell the system to grab every game with Batman in the title?
I'm sorry if this is a lot of questions. After "favourites", custom collections are the thing I want most out of ES.
The plan is to have 2 new Custom Collections, each with a bunch of sub-folders. Eg:
- Classics
- Mario
- Sonic
- Pacman
- Tetris
- Superheros
- Avengers
- Batman
- Spiderman
- X-men
-
-
When it comes to sorting favourites by consoles, I really think that would be nice.
In fact, and I know this is possibly an annoying thing to say, I would love for the "favourites" functionality to lie within the system-folders instead of being 2-3 or 8 extra folders. Much like the Kid/Kiosk experimental package does. What I think would be spot on, is if the system could switch between "favourites"/"browse all" modes with the click of a button. With the click of another button it could star/unstar favourite games for that specific folder.
But the collections are cool too, just more in the sense of having, say genre-collections, cross-systems "all time SHMUPS" or like that.
Sorry if it seems I'm just throwing my requests after you and then leans back and looks out the window, while I await you brilliant people make your magic. That's just what I thought would perform brilliantly.. :)
-
Great news! :-)
-
@mattrixk I'm not sick of anyone, please :) Happy to chat and discuss!
Answers:
-
Unfortunately none that I'm aware of. I don't have access to a Windows machine to compile it, so other than compiling it yourself or having someone explicitly compile it, I don't really have a systematic way to produce those though I'd certainly like to make those available. If anyone has any ideas on how to achieve that, I'm all ears. As for being up to date, it is based on 2.3.1, so it should have everything but the most recent changes on font sizes from @jdrassa .
-
Hm... Neither, I suppose. My idea is that this would be accessible to almost anyone, with little explanation. The way I envision the use case (illustration purposes only, final product may differ), is kind of the following:
- Go to Collections Menu;
- Select an existing suggested collection based on an unused theme folder, or select "create new collection" and type a name. We might pre-fill a name, for users without a keyboard, but it won't be suggested;
- The user is taken to the normal gamelist views, and can manually select each and every game they want to add to a particular collection. When done, there will be a way to exit this "edit" mode.
- Collection now shows in the expected location (be it as a separate system or inside the "custom collections" system as a subfolder).
So, ultimately, no sym-links, no messing, etc. No new metadata tags. That's what I'd aspire to.
I imagine it would be nice to have some suggested games, based on the collection name, but I don't think we're there yet. Also, given that the "collection creation" stage is only done once per collection (or, at least, shouldn't be something that one would do very often I imagine), I am unsure whether investing in that wizardry would be needed - given that hopefully 90% of the time will be spent enjoying the actual collections rather than creating and editing them - but it is an interesting point.
- As for your described use case, unfortunately I can't say that it will be supported out of the box, at least. As I mentioned, your collections will be able to reside either at the main system level (so, you would have a system for "Batman", etc) or as a subfolder under "custom collections" (which will likely be called "My Collections" for the end user). So, ultimately, what you could have at the moment would either be:
- Mario
- Sonic
- Pacman
- Tetris
- Avengers
- Batman
- Spiderman
- X-men
- TMNT (I added that for you ;) )
- All Games
- Favorites
- Last Played
- Arcade
- Daphne
- GB
- ...etc.
or
- My Collections
- Mario
- Sonic
- Pacman
- Tetris
- Avengers
- Batman
- Spiderman
- X-men
- TMNT (I added that for you ;) )
- All Games
- Favorites
- Last Played
- Arcade
- Daphne
- GB
- ...etc.
Note that you can select which of the collections to show (i.e. you don't need to show "All Games", "Favorites" and "Last Played" if you don't want to - and same would go for the other collections. I'm just including them here for the sake of the example).
I suppose you could prefix those with the type:
- My Collections
- [Classics] Mario
- [Classics] Sonic
- [Classics] Pacman
- [Classics] Tetris
- [Superheros] Avengers
- [Superheros] Batman
- [Superheros] Spiderman
- [Superheros] X-men
- [Superheros] TMNT (I added that for you ;) )
In order to mitigate the lack of direct use case support, but I was not thinking of allowing users to create complex hierarchies here as it just makes it a lot more convoluted from a UX perspective, with questionable benefit to the wider audience. But let me know if you fundamentally disagree with these options, and I'm happy to explore tentatively any elegant and simple ways to make that happen - or at least build something that could in the future be extended should there be the need.
But right now I'm really aiming for something simple and practical.
@AndersHP - I don't have a problem with adding a sorting option for the system. I think that, while the previous All Games example really didn't demonstrate that use case, your "sorting <a specific collection's> game by console" is a valid one. It may not be present out of the box, but it's not hard to do. Noted.
As for favorites in the system folders, please refer to the thread I linked to earlier. I - and most people - agree it is a use case worth addressing.
It's not that you can't have them in the folders, it's just that last time that was attempted there were way too many opinions on how to visually represent that, and little to no consensus on how to achieve that.
The games will still be in the actual systems, and their metadata will state that they are a favorite - it's just that we don't represent them visually at the moment. That's something that can be added later - be it as a definitive solution, or as an interim compromise.
But that is not the battle I'm fighting now. At least with this change.
For all intents and purposes, you can - in this current build - with a click of a button star and unstar favorite games. They will be added to the "Favorites" system, and their metadata will change to reflect that. You just won't see anything change in the individual systems, unless you'd open a game's metadata editor and see that the "Favorite" value would have changed.
Hope that makes sense.
-
-
@pjft I need to get around to writing up the process for setting up automated Windows builds. The process still needs a bit of refinement though.
-
@jdrassa Not a bother. I know you had it set up for your repository, but I don't know the details. Whenever you have something, I'm happy to give it a whirl, but no urgency.
Thanks!
-
@pjft Thanks again for the explanation.
I was not thinking of allowing users to create complex hierarchies here as it just makes it a lot more convoluted from a UX perspective, with questionable benefit to the wider audience.
I understand completely. It's always a good idea to follow the KISS principle. You can build up to complexity, but it's generally best to do it with a bunch of simple steps, rather than one big complex attempt.
[Classics] Tetris
[Superheros] AvengersThis seems like the best option for me. If I decided I wanted to move
[Superheros] Batman
into it's own System on the carousel, would I just have to create it's own folder? Would it have to be named[Superheros] Batman
, or[superheros]-batman
? -
@pjft said in [Theme Changes] Attention Theme Makers: Upcoming Game Collections in ES:
I imagine it would be nice to have some suggested games, based on the collection name, but I don't think we're there yet. Also, given that the "collection creation" stage is only done once per collection (or, at least, shouldn't be something that one would do very often I imagine), I am unsure whether investing in that wizardry would be needed
It sounds like the way the collections are made will be quite easy, no need to spend your time on making a suggested games wizard, if you ask me.
As for favorites in the system folders, please refer to the thread I linked to earlier. I - and most people - agree it is a use case worth addressing.
It's not that you can't have them in the folders, it's just that last time that was attempted there were way too many opinions on how to visually represent that, and little to no consensus on how to achieve that.
OK, but isn't that where you, as the guy who puts time into it, decides how it will look? I mean, if you could star and un-star with the push of a button, and switch between favourites and all games with the push of another button, is there a more seamless way to do it?
The way I am going to use these favourites is, in line with all this retrogaming, to have my old collections of games for every system. When e.g. all Master System games in the world is about 300 MB (if I'm not mistaken) there's something cool about having them all. But it's so uninspiring looking at an endless list of games, it feels like you really have none at all. With favourites easily available, browsing only the 20-30 games you once owned or played with your friends, brings back all the memories.
Anyways, it's really exciting to follow this development!
-
@mattrixk said in [Theme Changes] Attention Theme Makers: Upcoming Game Collections in ES:
This seems like the best option for me. If I decided I wanted to move [Superheros] Batman into it's own System on the carousel, would I just have to create it's own folder? Would it have to be named [Superheros] Batman, or [superheros]-batman?
Identical to the collection name. Which will, eventually cause trouble with some characters that aren't accepted in the file system, like "*" and "?", but I'll need to filter those beforehand.
And then you'd edit the collection in the menu and select "Show at top level" or something.
At least that's my idea, but I haven't really started this yet - first waiting to close off "All", "Last Played" and "Favorites" before moving on to the next.
@AndersHP said in [Theme Changes] Attention Theme Makers: Upcoming Game Collections in ES:
OK, but isn't that where you, as the guy who puts time into it, decides how it will look? I mean, if you could star and un-star with the push of a button, and switch between favourites and all games with the push of another button, is there a more seamless way to do it?
Well... Kind of. :)
In the case of the "Favorites" feature, it has been implemented by several people differently. In fact, this current implementation is a subset of @Zigurana's work in the Kids-mode branch.
There are several discussions that are worth being had, and @Zigurana is also working on bringing over all those things to the main branch, in due time.
What I'm developing here is the "Collections" concept - the fact that "Favorites" is a part of it is just a collateral coincidence. At my request, @Zigurana was kind enough to let me adopt the required set of features to make this work for a "Favorite" collection, but other than that I don't plan on doing anything that overlaps with his work, as it is his brainchild, and I'm sure that when it comes over it will be fantastic. :)
The way I am going to use these favourites is, in line with all this retrogaming, to have my old collections of games for every system. When e.g. all Master System games in the world is about 300 MB (if I'm not mistaken) there's something cool about having them all. But it's so uninspiring looking at an endless list of games, it feels like you really have none at all. With favourites easily available, browsing only the 20-30 games you once owned or played with your friends, brings back all the memories.
I fully get that, make no mistake. If you see the work I did on "Filters" and now on custom collections, you can tell I suffer from similar problems :)
You will be able to filter by favorites, though, so you can certainly in your system just open the filters and select "Filter by Favorites" to reduce the list for that particular list.
You just won't have a visible icon for those.
Thinking about it, I need to add that filter.
Hope this helps.
-
@pjft Thanks for clearing this up, I just stumbled upon your mentioning of collections like "SEGA games" and thought about the favourites in the systems folders.
I will look very much forward to these implementations. Will it be RetroPie-only or general EmulationStation updates, when they arrive?
-
@AndersHP Makes sense!
This will only require an update to EmulationStation, and I hope (fingers crossed) that in a worst case scenario this will all be available by the first week of August. But no promises.
-
-
@UDb23 Thanks! I'll test them out and record a video or something, once again.
Thank you for your hard work on these :)
-
@pjft PR has been submitted for carbon with basic support. Default is to render the "system" name as text when a logo is not found. It is using variables so you should be able to just add logos in the right place with the right name and it should pick them up. For example, to add a logo for favorites, you would place the logo here:
es-theme-carbon/art/logo/auto-favorites.svg
.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.