razage / persistent-flannel

a website for tracking what games you've played and getting recommendations
0 stars 0 forks source link

Make some genres and tags #14

Open razage opened 7 years ago

razage commented 7 years ago

Once I start populating the database with more games, I'm going to want to add genres and tags. I should come up with a fairly comprehensive list of these to insert into the database. The difficult thing will be deciding what is a tag vs what is a genre.

razage commented 7 years ago

After discussing the subject with some of my friends, I've decided that genres will no longer be distinguished from tags. There will, however, be a tag category for "technical" or something along those lines. This namespace would be used for technical information like "30 fps", "Locked FoV", etc. These may affect someone's ability or desire to play a game, but they aren't necessarily useful for categorization.

razage commented 7 years ago

With these decisions in mind, I'm still left with a couple of problem for consideration.

  1. How should tags be "weighted"? There has to be a way to make tags more relevant based on user input, otherwise you'll eventually end up having every tag on a game and barely any of them are relevant. This could be accomplished by "upvoting" tags on a game and giving them some kind of numeric value based on that. Alternatively, users could submit a list of tags they would apply to the game, and the most common ones will be applied.

  2. How do we handle adding tags? Typically users would be able to add whatever tags they want, and the database would just add them in. I do want some amount of consistency though. I don't want 2+ of the same tag stored with different/incorrect spelling and capitalization. I am totally fine with "offensive" tags to a certain extent (walking simulator). My current idea is to make a very comprehensive set of tags to start with, and then have some sort of voting system to add new tags to the selection. This would restrict users a bit, but it would allow me to control the database.