IFDB: `played:yes` and ratings/reviews

Right now on IFDB, we have a bunch of advanced search filters. https://ifdb.org/search

One in particular caught my attention, the played:yes filter.

played:yes|no lists games that you have/haven’t put on your played list (i.e. “I’ve played it”). Only works if you are logged in with a user account.

The played:yes search filter considers only those games where the user checked the “I played it” box. But lots of people have posted ratings/reviews without checking that box.

So, I started thinking: perhaps played:yes should include games that you’ve either “played” or reviewed/rated. played:no should only include games that you’ve neither played nor reviewed/rated.

But, I’m not so sure about that. Maybe instead, if you rate/review a game, we would/could automatically check the “I’ve played it” checkbox, too. And, uh, maybe if you delete your rating/review, we’d… uncheck it? (Or should we? You’ve probably still played the game, even if you decide not to publish your review, right? Unless you rated the wrong game by mistake… :thinking: )

Yet another related idea is to add filters for reviewed:yes and rated:yes, which would match games that you had reviewed/rated. But, IFDB search doesn’t have a way to express OR queries. You can’t write a search like this:

played:yes OR reviewed:yes OR rated:yes

The word OR there would be treated as a search term for games containing the word “or” , not as a logical disjunction. This search query would effectively search for games containing the word “or” that you had “played” and rated and reviewed.

But you could at least use reviewed:no and rated:no to find games that you haven’t played or reviewed/rated.

played:no reviewed:no rated:no

What do you think? Should played:yes simply include reviewed/rated games? Or should we automatically check (and uncheck?) the “I’ve played it” box for you? Or something else?

5 Likes

How would

-played:no -reviewed:no -rated:no 

work in the two different methods?

Also a ‘reviewed’ tag would be great, I was trying to do an SQL search for IFComp games that I had not reviewed and I was having trouble with the correct join/grouping for that, so this would be a lot simpler!

1 Like

-played:no means played:yes, so that’s the same as played:yes reviewed:yes rated:yes, searching only for games that you’d explicitly marked as “played” and that you’d reviewed and rated.

2 Likes

I think automatically ticking the “I’ve played this” box when you rate something would be nice. I think leaving the box ticked if the user removes the rating would be fine; if they fat-fingered it and rated the wrong game, they can manually untick the box.

7 Likes

Aw man, you’re right, I forgot that in the thing I was trying to do we’d need to put another big onus sign outside of everything.

Is there any way to do both options, like make “played” include reviewed and related and then “playlist:yes” include just games on your played games list? We already have options like stdev that only show up on the advanced search page

Also I agree with E Joyce

3 Likes

I’m curious if anyone uses the “I’ve played it” option in some way that they would not want all the rated or reviewed games to be included in that group.

2 Likes

It’s not clear that we’ll get to a consensus quickly on this, so I’ve convinced myself that by far the easiest thing to do here is to add reviewed:yes and rated:yes filters. I’ve got an open PR for it now. https://github.com/iftechfoundation/ifdb/pull/337

Adding these search filters allows users to get the search I actually care about, which is played:no willplay:no wontplay:no reviewed:no rated:no, a search filter for games that are “new to you.”

A list of games “new to you” sorted by Evan Miller’s algorithm (which we call “starsort”) is effectively what we already do on the home page “IFDB Recommends.” (Evan Miller’s formula sorts by our confidence in the game, by adding five “fake” ratings to the average (one 1-star, one 2-star, one 3-star, one 4-star, and one 5-star rating) and subtracting the standard deviation from the result.)

2 Likes

I hardly rate anything, and use “I’ve played this” literally to track what I’ve played, mainly for my own benefit.
I’d rather removal of a rating didn’t automatically remove “I’ve played this”.
I can’t see any reason not to have adding a rating imply “I’ve played this”, though, despite the asymmetry, provided it’s made clear that the UI action has affected two separate pieces of state.

(I also wonder about the alternative of requiring a user to check “I’ve played this” before they can access the rating UI at all, or something like that. It’s another slight barrier to registering ratings, although maybe it can be minimised with careful UI design.)

4 Likes

I just experimented with the played and reviewed filters. It led me to find 7 IFComp games I never posted reviews for (that were written on intfiction) and 10 more I hadn’t marked ‘played’ on.

Ironically, when posting those reviews, I forgot to mark ‘played’ on three of theme. That experience has convinced me that ‘rating’ should mark ‘played’, especially since we ask for good faith ratings, implying no one should be rating games they haven’t played.

3 Likes

Oh my gosh, Fight Forever! I had forgotten about this game, but got a good chuckle checking out all the reviews again.

1 Like

Should it be a setting that users can turn off?

There’s also the question of what to do with any existing ratings that don’t have a “played” mark.

1 Like

My opinion: unless someone says they would want it turned off, I think I wouldn’t spend effort on making it possible to turn off.

Is there a way to do a one-time thing to update all of these in the database?

Or I guess it could just be left alone. Either way would probably be fine.

3 Likes

Yes, that shouldn’t be too complicated.

I think we can even scan that now to get a sense of how many ratings there are without matching “played”.

I’m a bit surprised to find that for most of the reviews, the reviewer did manually also check the “I’ve played it” box.

I count 11,655 reviews where the reviewer didn’t check “I’ve played it,” and 57,301 reviews where the reviewer did check “I’ve played it.”

This surprised me, since I almost never remember to click “I’ve played it.” I just rate/review a game and move on. But it appears that most of the most prolific reviewers reliably click “I’ve played it” on games they’ve reviewed. Since the most prolific reviewers write the majority of reviews, that’s how the results turned out this way.

Query Results
MariaDB [ifdb]> select count(r.id) from reviews r left join playedgames pg using (gameid, userid) where pg.userid is not null and special is null;
+-------------+
| count(r.id) |
+-------------+
|       57301 |
+-------------+
1 row in set (0.247 sec)

MariaDB [ifdb]> select count(r.id) from reviews r left join playedgames pg using (gameid, userid) where pg.userid is null and special is null;
+-------------+
| count(r.id) |
+-------------+
|       11655 |
+-------------+
1 row in set (2.535 sec)
2 Likes

reviewed:yes and rated:yes are now live and usable on ifdb.org.

Try this search for played:no willplay:no wontplay:no reviewed:no rated:no. https://ifdb.org/search?searchbar=played%3Ano+willplay%3Ano+wontplay%3Ano+reviewed%3Ano+rated%3Ano

4 Likes

Nice! For me I get mostly my own games and commercial games:


1 Like

Echoing that I would love if rating or reviewing a game automatically ticked the “I’ve played it” box.

1 Like

Could the rating or reviewing a game automatically ticked the “I’ve played it” be some sort of settings? That people could choose to toggle if they want to?

(also yeah, seconding the if a rating/review is removed, don’t remove it from the “I’ve played it” list)

I’m curious if there’s any reason someone wouldn’t want rating/reviewing to automatically mark as played? Like is there anyone who uses IFDB in such a way that that would be detrimental somehow?

1 Like

Seems like the general consensus is toward checking the box. I’ve filed a bug on it.

3 Likes