New ES Feature: Random Collection - Testers and Theme makers needed
-
Hi all.
I have been working for the past week on a feature that I was needing here, related to game discovery. I pretty much was missing the times when I went to a videogame store or an arcade and browsed all the different new games that were there and had to play the ones that were available.
With large collections on our setups these days - well, pretty much anything over a few dozens or hundreds starts becoming tricky to choose what to play unless you already have an idea - I created a new automatic collection tentatively called “Random”. You have the option to select what systems and collections to select games from, you can select how many games to use from each system and collection, and you can choose how many games you want in the final collection if you want to trim it down to a certain number. You can also regenerate the random game selection on the fly.
The code is currently in a Pull Request for the ES-dev code, and I should merge it at some point tomorrow after I run some final tests for some edge cases that occurred to me. Also, never merge code and log off, as if something breaks it’s rough. Still, if anyone feels confident and wants to try it out, it’s there but you can also wait for tomorrow.
What do I need from all of you
First, testing and having fun with it. I’m mostly interested in understanding where this breaks, as there were a lot of moving pieces to make this happen. I think things are solid now, but I’m very much open to be proven wrong.
Second, and most important, when enabled, this will introduce a new automatic collection to the themes. Since no themes are ready for it yet, that system will show at the top level, unthemed.
Since I suck at design, would anyone be available to:
- Help create the logos and icons for Carbon, the default theme for ES?
- Update your existing themes to add support for the new auto-random collection. Tagging some of the folks I know were active in theming such as @alphatoanant (Artbook, others), @3Draco (ComicBook more recently), @dmmarti and @UDb23 .
The collection theme folder is auto-random, and the name is random unless someone has a nicer suggestion. “Surprise Me” was a close second, but I kind of grew fond of Random, so it’ll probably stay.
Happy to provide more info, but if we can at least get Carbon ready, it’ll be easier to make this feature part of the main EmulationStation that’s installed by default on RetroPie, rather than staying on the dev branch.
Thanks all, and looking forward to tomorrow.
-
@pjft! Cheers to your work on this, I have been meaning to rebuild my retropie setup (it has been too long) so this will be a good driver for that.
I just added
auto-random
support to Art-Book and Art-Book-Next so I hope they work out well. If not, like I mentioned above, I'll get a new retropie build set up to test things out directly soon.Commit References:
- Art Book Next: https://github.com/anthonycaccese/art-book-next-retropie/commit/63b533607ca377730d6069af1d0b5ad51b441969
- Art Book - https://github.com/anthonycaccese/es-theme-art-book/commit/a4b4321eecd3a14853d53a3f51702a80dc21743c
Will also see about some of my other themes (I just need time to revisit their xml/structure from a few years back).
I think Random is a good name for the functionality you're describing so that's all good from my pov.
Cheers again.
-
@alphatoanant awesome - thank you for the quick response:) I'll try out ArtBook today and report back.
Any chance you'd be interested in/available to try to create a logo/icon for Carbon? Completely fine if not, but thought I'd ask.
Thanks once again.
-
Hi all.
This change is now merged to
emulationstation-dev
. Just install/update it from RetroPie-Setup.@alphatoanant I confirm that both themes work well - thank you for the prompt response!
You can go to the settings menu > game collections, and enable "Random" as an automatic collection. You then have an option for "Random Collection Settings" where you can configure it to your heart's content.
To regenerate the collection, in the actual collection just press Select and choose "get new games".
Option names may differ from those in the description. :)
Have fun everyone!
-
Very nice addition, i tested it with Buster and RPi3 B and is working without issues. Thank you!
A suggestion:
In the Random Collection are included and the start scripts of some emulators, for example the+Start ScummVM.sh
,+Start ZEsarUX.sh
. I don't know if it is possible to ignore this from the randomness.(Also, Random Mania , a suggestion for the name :P)
-
@windg Glad to hear it's helpful! Random Mania can certainly be the name a theme chooses for the collection, but for the sake of ES systems, I'm trying to use one word or so because "code". :)
I did have that issue with the scripts, but I ended up not ignoring them, as there are some ports and emulators that do launch with similar scripts and I didn't want to exclude those.
There are two options: you can either just create a collection with the games from the system that you'd want to include (that collection does not need to be active, btw!) and use that instead of the system. I, for instance, have a collection with all GB + GBC + GameGear games, and choose one every time.
The other option, which is something that's still to be decided, is to have a simple collection with exclusions - entries you do not want to include - and then you'd add all those scripts and whatnot to that collection. That's probably the easiest way for the users, but I'm not yet fully sure of how to go about implementing it, or whether it'd effectively be necessary or whether I'm just overengineering things. Trust me, I have plenty of ideas of features to add to this once this is stable - it's just a matter of thinking it through and figuring out if these are things that users would actually benefit from to warrant both the development and maintenance.
-
@pjft I got my retropie built this morning and this is a cool feature!
I took a pass at controller/system art for Carbon-2021 and came up with the attached a quick version.
I am sure a better designer could come up with something different =)
That said, if these is ok for now, I'd be glad to make a PR to the carbon-2021 repo to add them as a temp.
-
@alphatoanant I love it - thank you! :D This is awesome.
Glad you find it useful as well - I hope it will allow us to discover and enjoy more of the games we have in our collections. :)
Do send over the PR - I need to check who actually owns that repo (I'm not even sure I'm on it) but we'll get that approved.
Thanks!
-
awesome 😊
PR created: https://github.com/RetroPie/es-theme-carbon-2021/pull/10
-
@pjft said in New ES Feature: Random Collection - Testers and Theme makers needed:
Hi all.
I have been working for the past week on a feature that I was needing here, related to game discovery. I pretty much was missing the times when I went to a videogame store or an arcade and browsed all the different new games that were there and had to play the ones that were available.
With large collections on our setups these days - well, pretty much anything over a few dozens or hundreds starts becoming tricky to choose what to play unless you already have an idea - I created a new automatic collection tentatively called “Random”. You have the option to select what systems and collections to select games from, you can select how many games to use from each system and collection, and you can choose how many games you want in the final collection if you want to trim it down to a certain number. You can also regenerate the random game selection on the fly.
The code is currently in a Pull Request for the ES-dev code, and I should merge it at some point tomorrow after I run some final tests for some edge cases that occurred to me. Also, never merge code and log off, as if something breaks it’s rough. Still, if anyone feels confident and wants to try it out, it’s there but you can also wait for tomorrow.
What do I need from all of you
First, testing and having fun with it. I’m mostly interested in understanding where this breaks, as there were a lot of moving pieces to make this happen. I think things are solid now, but I’m very much open to be proven wrong.
Second, and most important, when enabled, this will introduce a new automatic collection to the themes. Since no themes are ready for it yet, that system will show at the top level, unthemed.
Since I suck at design, would anyone be available to:
- Help create the logos and icons for Carbon, the default theme for ES?
- Update your existing themes to add support for the new auto-random collection. Tagging some of the folks I know were active in theming such as @alphatoanant (Artbook, others), @3Draco (ComicBook more recently), @dmmarti and @UDb23 .
The collection theme folder is auto-random, and the name is random unless someone has a nicer suggestion. “Surprise Me” was a close second, but I kind of grew fond of Random, so it’ll probably stay.
Happy to provide more info, but if we can at least get Carbon ready, it’ll be easier to make this feature part of the main EmulationStation that’s installed by default on RetroPie, rather than staying on the dev branch.
Thanks all, and looking forward to tomorrow.
will this only work on newer versions of ES? or should it work on older versions of es?
not seeing how or where to install this? -
@Retrodade said in New ES Feature: Random Collection - Testers and Theme makers needed:
will this only work on newer versions of ES? or should it work on older versions of es?
You need to install the development version of EmulationStation, as @pjft mentioned earlier
This change is now merged to emulationstation-dev. Just install/update it from RetroPie-Setup.
-
@pjft Nice x 2 :)
Some minor layout issues from cursory testing:
The menu entries are not named consistently: "Custom Game Collections" but only "Random Collection Settings" (I am missing the Game after Random.) However, in the then opened submenu it is named as expected (see below).
The Menu Title is quite long, but it is ok as the user navigated into it and knows the full name nevertheless.
But: "Max Items" could be named "Max Games"
In the menu "Automatic Collections" (and also in "Custom Collections"= the Menu Title still reads "Games from Systems", I guess it should read "Games from Auto Collections" and "Games from Custom Collections"
One more thing (maybe personal preference): Did you consider to use the
SliderComponent
for the values 0 to 5 in this and the "Systems" and "Custom Collections" as widget? -
-
@Lolonois cool, thanks for the pointers:) I'll look into those.
I did not look into slider components, to be honest, though I see how that could also work.
-
Hi everyone. Just before the weekend, a short update:
- @Lolonois I updated the labels following your feedback. Thanks! I did not have it in me to switch the number selection to a widget for now for lack of time, but happy to take that change if you want to go ahead with it.
- @windg I added an option to select a collection with entries you want to exclude. Good to add all those scripts, or just games you don't want to be selected for the Random collection.
Hope this is useful! Have a great weekend everyone.
-
Thank you very much !
-
@windg By all means, hope it's useful!
-
This is how it would like with the Slider Control:
These are the applied changes.
Initially I did not read about the exclude function here, which puzzled me initially. But with the hint to create a new custom collection and use that one to exclude games it makes sense.
However, I do not see entries like "+Start xy" in my lists, maybe because I have set "Parse Gamelists Only" set to On. But I do understand the motivation to deliberately exclude games for reasons.
-
Feature-wise nothing will be changed with the PR 859 [1], some changes "under-the-hood".
Heads up: Only for the testers of the initial version announced here, there is a change in how the settings are stored. To save you the work to manually re-apply your selections you made, I have provided a script [2] which does the conversion of the respective parameters in the
es_settings.cfg
. Put it on your Pi, run it as userpi
withpython3 <scriptname>
before you run the ES with PR 859 applied.If you start to explore this feature the first time after PR859 is merged, no action is needed.
[1] https://github.com/RetroPie/EmulationStation/pull/859
[2] https://gist.github.com/Gemba/4729e3560264511ea06aadb18f439112 -
@Lolonois Thanks. The script works as intended. For those that don't do a lot of python work, you may need to install the lxml extension before running the script:
sudo apt install python3-lxml
-
-
Is this available for any theme? I can't seem to find the option to turn this on after updating from the RetroPie Setup Script
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.