MrZammler / iGame

iGame is a simple frontend for launching whdload games.
GNU General Public License v3.0
85 stars 17 forks source link

Add 'tags' to games #151

Open rosneru opened 3 years ago

rosneru commented 3 years ago

Would it be possible to support tags for games? In a way that multiple tags can be added to each game?

(I feel this would be a too big design-change but nevertheless I wanted to write down the idea.)

Filtering then also should be able to take multiple tags as input.

In a long view the 'Genre' filed could become obsolete and replaced by tags.

With tags the following would be possible:

Lotus II
  +racing
  +2d

Stunt Car Racer
  +racing
  +vector

K240
  +simulation
  +space
  +amiga-exclusive

Elite II Frontier
  +simulation
  +space
  +trading
  +vector

So one could easily filter for Amiga exclusive titles or for vector racing games.

walkero-gr commented 3 years ago

@rosneru We had a few discussions previously on that matter, so to use tags for every game. It will require tremendous changes in iGame to support it, like the window were you set the genre, the way we store the information, and so many other things.

We thought to use JSON files to store this information, because it can have all the data in a structural way, but we believe that all these changes will make iGame more heavy for slow CPUs and more memory hungry. You see we try to have a good balance on bringing features and keep iGame as light as possible.

But your proposal is still valid, and this will remain in here to revisit in the future. Thank you for your message.

DisasterIncarnate commented 2 years ago

if anything the whdload slaves should ideally have the tags for the individual games in question, this way igame doesnt need to have them set manually which could be a pain in the backside for a massive list, if whdload slaves contained such tags in tooltypes maybe then they could just be read by igame and used if wanted/needed/set in prefs.

walkero-gr commented 2 years ago

@DisasterIncarnate I am experimenting with different things, but right now, the way iGame works doesn't support multiple tags for an entry, and this is something that needs some restructuring to work. Tooltypes tags in games wouldn't be a good idea, because that would require loading its icons and getting the data during the scan of a library, and that would increase the scanning time a lot. In any way, I would prefer to avoid it.

DisasterIncarnate commented 1 year ago

any progress/inspiration for your idea regarding tags? Again on my own little project i am simply using a tag string contained in brackets in my game entries at the start of each entry which is an entry of alphabet codes that i used previously to represent a genre.

so for a quick example

Lotus 3;Lotus3/lotus3.slave

I just add to the start something like

{P}Lotus 3;Lotus3/lotus3

P simply represents a Racting Game

{CINQ}Valhalla Before The War;ValhallaBeforeTheWar/valhallabeforethewar.slave

C = Adventure Games I = Maze Games N = Puzzle Games Q = RPG Games

if no {} are present then no tags are there and can be ignored totally, my only issue is how to get the tags in the first place, manually editing a metric ton of files can take forever and if you ever change what any of the tags represent then thats a lot of retyping to fix and correct. An idea would be for online systems to somehow scrape tags from Lemon Amiga or Amiga HOL by name or by ID number, tho ID number would also require a list that knows whats what, so its no simple way either way.

Thats obviously a limited way to have tags, and your gonna run out of single character entries that can equate to a predefined tag, but like you i cant find an easier way to include tags without creating a ton of extra files filled with a lot of info that may or may not match if someone doesnt end up using identical tag names.

walkero-gr commented 1 year ago

@DisasterIncarnate Sorry for the late reply. Unfortunately, I tried a few things but didn't work as I wanted. I understand your proposal, but I am looking for a solution that could be more flexible for the user to set his own tags, rather than having a fixed list. I still have some extra ideas that I want to try out, after I finish some huge work I am currently doing.