This repository exists to manage feature suggestions and bug reports relating to IFDB.
Please file suggestions in the issues tab above.
Bugs and feature requests for a future IFDB update
This repository exists to manage feature suggestions and bug reports relating to IFDB.
Please file suggestions in the issues tab above.
The site breaks on screens 800px wide and smaller.
Cover art is much more an integral part of interactive fiction now than it was when IFDB was created. There should be a way to see full cover art for games mentioned on the main page.
Simultaneously, there should be a way not to see cover art. Many IFDB users are blind, and others have slow or expensive internet connections.
If you Browse by "Highest Rated First," the first page will be full of games with perfect 5-star averages. These are typically games with a very small number of ratings, often just one rating. https://ifdb.tads.org/search?sortby=ratu&browse=1
To see the number of ratings, you can search for #ratings:1-
and sort by "Highest Rated First," which typically shows a subtly different random set of games, but it makes it all the more obvious that these are games with just one or two 5-star ratings.
https://ifdb.tads.org/search?sortby=ratu&searchfor=%23ratings%3A1-
Sorting by average is a notorious bad practice; there are a number of alternative approaches. This article by Evan Miller discusses the problem https://www.evanmiller.org/how-not-to-sort-by-average-rating.html and includes a proposal for binary thumbs-up/thumbs-down "positive" and "negative" votes. He also has an article (more relevant to our situation) about sorting by star rating. https://www.evanmiller.org/ranking-items-with-star-ratings.html
I've posted a version of Evan Miller's algorithm in SQL. https://gist.github.com/dfabulich/fc6b13a8bffc5518c4731347de642749
IFDB should use that algorithm when sorting by rating.
IFDB stores all of its data in a MySQL latin1
database and jumps through a bunch of hoops to prevent itself from getting accidentally transmogrified into UTF-8.
When I was porting from MySQL 5 to MariaDB 10, I accidentally restored the database as UTF-8, and so I began the process of trying to adopt UTF-8. I found it didn't seem to be that much work to just use UTF-8. It was more a matter of deleting code than adding it, and making sure nothing got missed.
It would need a pretty serious test plan to make sure nothing got missed, but it seems doable to me.
Currently anybody can add tags to a game, but only the person who added a specific tag can remove that tag.
This creates situations where games have been tagged wrongly (e.g. "incomplete") - or occasionally downright abusively - and it is impossible for anyone else to remove the tag. You can't even message the person who made the tag and ask them to remove it, because you can't see who the tagger was.
I see no reason it shouldn't be possible for anyone to add and remove tags, just as anyone can edit a game's description.
You can do advanced searches on IFDB. https://ifdb.tads.org/search
For example, you can search for published:2020 #ratings:3-
to search for games published in 2020 with at least three ratings. https://ifdb.tads.org/search?searchfor=published%3A2020+%23ratings%3A3-
But when you do that, the default sort order is to sort by "Relevance." Relevance makes some sense when you type in some text in the search bar; you're finding games that are as close as possible to what you searched for. But when doing an advanced search like this, there's no text to be "relevant" to.
When there are no search terms, it should sort by "Highest Rated" or something. (But it shouldn't just sort by average rating; see issue #16.)
This should exclude private messages but include ratings, poll votes, page edits, tags, and 'helpful' review votes
Searching in online search engines delivers results in multiple forms: images, music, videos, text.
This is helpful because although form-specific searches are more specific, it's hard to know what specific form is best to use for a given search.
IFDB's main search should return results for multiple specific forms e.g. games, tags, lists, polls...
It might be that the following is already being dealt with, or that things will be solved in a different way. That's fine, I may have missed the discussion. This tackles #22, #25 and #41.
I would suggest to add two "deadflag" variables to the database, connected to an author, that are 0 by default, and if set to 1 define that (flag 1) the reviews of the respective author are not to be displayed and counted and that (flag 2) the games of the author are not to be displayed and counted into lists and analysis. That's how I as a complete layman would make the database "fit" for when we've decided on how to deal with malicious reviews and/or authors. May be a stupid idea, in that case just delete this suggestion.
In a dev environment, login as ifdbadmin, go to the admin console at http://localhost:8080/adminops
and search for a user with reviews. Use the "Banned" radio button to ban them and click "Apply." Now, have a change of heart and set them to "Active" and click "Apply." Click through to their user profile to see their reviews.
Actual: When a user gets banned, all of their reviews are deleted in the process. There's no convenient way to restore their reviews.
Expected: I think it makes sense to delete reviews when you use the "delete account" button (which is clearly labeled), but when you use the "Account status" switcher, it should just set the account status to "B" without deleting anything. (It is separately possible to hide a user's reviews without deleting them using the "Sandbox: 1 (Trolls)" feature, which is effectively a shadowban if their account status is still "active.")
So, specifically, I think the buttons at the top should say:
The account switcher should just set the account status without deleting anything, even if you set the status to "closed."
As a temporary workaround, I think we shouldn't use the "Account Status: Banned" radio button, but should instead set the user to "Account Status: Pending Review, Sandbox: 1 (Trolls)"
https://ifdb.tads.org/dladviser?id=aearuuxv83plclpl
Set up a dev environment and login as ifdbadmin
. Go to http://localhost:8080/adminops?addnews
and add a Site News item. You'll be able to see your news post on http://localhost:8080/news (which you can access by clicking the "Site News" link from the home page).
Actual: The site news item isn't directly visible from the home page at all. From the home page, you have to click the "Site News" link in the upper right to see any news. https://ifdb.tads.org/news
Expected: Site news should show up in the "New on IFDB" section (or perhaps the "Welcome to IFDB" section, if it's new within the last month?)
Fatal error: Uncaught ArgumentCountError: Too few arguments to function mysql_query(),
1 passed in /homepages/28/d173029870/htdocs/ifdb/club on line 301 and exactly 2 expected
in /homepages/28/d173029870/htdocs/ifdb/util.php:13 Stack trace: #0 /homepages/28/d173029870/htdocs/ifdb/club(301):
mysql_query('select publicli...') #1 {main} thrown in /homepages/28/d173029870/htdocs/ifdb/util.php on line 13
I can look into it after the code published.
When you copy and paste a game link into the intfiction.org forum, it tries to generate a preview card for it, but IFDB is missing the metadata Discourse wants in order to make that card, so card generation fails. This sort of data is used on other sites as well, including Twitter, Facebook, etc.
We should put that metadata in so the cards will work, e.g. adding OpenGraph elements to the head.
Chrome now blocks links to HTTP files. For example anchor.z8 from https://ifdb.tads.org/viewgame?id=op0uw1gn1tjqmjt7
We should change all the downloads in the database to use HTTPS.
The "New on IFDB" page displays Unicode error symbols (question mark diamonds) instead of accented characters, smart quotes, etc:
Expose a JSON version of the API.
Apropos #25, users can edit their own reviews and comments, but moderators/administrators can't edit other people's reviews/comments, not even to add a spoiler tag.
Edit: As review flagging is a separate issue, this issue is about removing downvotes on reviews, a course of action only made possible when we've already added flags for low-quality reviews.
Right now, you can vote for reviews as helpful or unhelpful. The total number of people who voted is displayed, with the number of positive votes indicated (such as 0 out of 12).
Positive review upvotes are helpful, particularly for very popular games, which are likely to be the ones most viewed. For someone looking at Photopia or 9:05, it's helpful to see the highest-rated review.
Negative review upvotes are frequently abused. I have some self-interest here, as someone's been downvoting each of my reviews for about two months, but others have experienced this too (for instance, someone was downvoting all CYS reviews). Outside of such trolling, they mainly are used to express disapproval with troll reviews.
By removing negative downvotes, bad reviews will still sink to the bottom as they will receive few upvotes. By replacing it with review flagging (an flag that is only seen by moderators), troll reviews can be removed.
Adding a suggested similar game (on the crossrec page, e.g. https://ifdb.tads.org/crossrec?game=v41tydzz51khw6ab&edit) to a game for which you've already added a suggested similar game fails with the following error message:
An error occurred deleting the suggestion from the database. You might try the operation again in a few minutes, or contact us if the problem persists.
license:free seems to works in the search box.
But "license:" is not documented on the IFDB search page.
A search which lists matching tags.
Although you can currently read through the list of IFDB's public tags, the list is rather long, on multiple pages, and it's sometimes more convenient to search directly if you have a specific tag in mind but e.g. don't know precisely how it's spelt.
It's also possible to construct a custom search using e.g. tag:furry in the search box - but this is nonobvious to new users.
The search should return the same results as for a custom tag:x search e.g. it should return multiple tags if tag:x would.
If you are on a game's page or a user's review page, it is difficult to find an individual link to an individual review.
There's no way to say something like:
(Initially I'd written that there's no way to have multiple authors, but it turns out you can, as long as they all have IFDB profiles. If you just type "X and Y" they show up as a single string.)
If you're the author of a game, there's nowhere to put your general remarks about your game, e.g. "This game was fun to write because …"
Some authors have accidentally(?) reviewed their own game in order to leave these remarks, which is clearly not the right way to go about this.
Right now, to search for games that are rated at least 3 stars, you need to type "rating:3-" into the search bar (and in order to figure out that that's what you're supposed to type, you have to read the search help.) I'm not suggesting removing the ability to search that way, but it'd be nice to add some clickable, more intuitive search options where they make sense.
It would be nice to be able to use more than one filter in a given search. So, for example, you could search for historical games that are rated at least 3 stars, without having to look at the search help.
Edit: To see an example of the type of thing I'm talking about, try doing a search for "shelf" at https://www.homedepot.com. On the left side of the search results screen, there's a box where you can click 1-5 stars to show what minimum star rating you want, checkboxes you can click to choose different options, and fields where you can type minimum and maximum number values. As you choose options, the search results narrow.
The passwords in the IFDB database are not stored in plaintext, but they're hashed using SHA-1 and a salt.
We should use a better hashing algorithm instead of SHA-1, upgrading users from their SHA-1 passwords when they sign in.
https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html
When a user goes to write a review for a game, the review page shows several steps. Step 6 gives an option to write a "From the Author" review. But when this option is chosen, some of the other items on the page no longer make sense, and should probably not be available:
It might also make sense to put the "From the Author" option earlier on, so the person doesn't waste time filling in irrelevant options.
These lists can get long. It's hard to find things without any sorting.
There should be separate filter lists by status: promoted, demoted, plonked.
Each list should be sorted e.g. by username.
This way users can easily manage their groups, and easily find individuals.
Set up a local developer environment. In an incognito window, go to http://localhost:8080/newuser
and register a new user account. Check your Docker logs for the activation link and click it to activate the user, then, back in your incognito window, sign in as your activated user.
Now, in your non-incognito window, sign in as ifdbadmin
, navigate to http://localhost:8080/adminops?finduser
and search for the user you just created. Ban/delete/close the user account. (It doesn't matter which one, none of them work.)
Back in the incognito window, click on a game and attempt to leave a review.
Expected: Once your account is banned/deleted/closed, you should be logged out, and unable to leave a review
Actual: You're still logged in, and you can still leave a review. You can keep using your banned account and post as much as you like publish reviews and post ratings until your session expires 😱
https://ifdb.tads.org/viewlist?id=k7rrytlz3wihmx2o takes more than 30 seconds to display anything at all.
If you set up the IFDB dev environment and navigate to http://localhost:8080/viewlist?id=k7rrytlz3wihmx2o you can reproduce the issue. If you add SQL logging by editing util.php
line 13:
function mysql_query($query, $db) { error_log($query); return mysqli_query($db, $query); }
You'll see that most of the time is spent performing N queries, sequentially (not in parallel) like this:
select avgRating, numRatingsInAvg from gameRatingsSandbox0 where gameid='aearuuxv83plclpl'
I'd also say mod tools should allow direct editing of tags, but that's already a suggestion for all users.
The IFDB home page has an "IFDB Recommends" section wayyy down at the bottom.
These are a few randomly-selected games with high average member ratings.
IMO, this section shouldn't randomize. Instead, it should just show the best-ranked games on IFDB, as a leaderboard.
I see it as similar to the "Reviewer Trophy Room" section on the home page, which shows the top 5 reviewers on IFDB. It wouldn't make sense to show five random reviewers. In this setting, we want the best.
Many games have a genre field, but mysteriously, you can't click that field to see all games of that genre. There could also be a specific search for genres.
This sort of covers #35, #36 and #38 in a broader range.
I want to suggest to replace the tag system by a category system as used in Wikipedia. Which is, in a nutshell, a tree diagram of tags, so a two-dimensional tag system, if so you want. There's unspecific higher categories and specific lower categories. Examples:
Advantages:
An example from Wikipedia: 1893 is in the category "2000s interactive fiction" which is in the category "Interactive fiction by decade" which is in the category "Interactive fiction". It is also in the category "Video games set in Chicago" which is in the category "Video games set in the United States by city" which is in the category "Video games set in the United States" etc etc etc - Very easy to navigate, and a tremendous step forward for a) the reader and b) analysis.
It would be cool if users could follow stuff and get updates about them in their IFDB inbox.
On some websites when you start typing tags, a popup appears suggesting known tags. This feature makes it easy to discover (how to spell) tags if you are a new user or have difficulties remembering popular tags. IFDB would be easier to use with tag suggestions.
Currently when stuff appears in the IFDB inbox, https://ifdb.tads.org/commentlog?mode=inbox the only way to know about it is to navigate to the home page of IFDB.
It would be better to send out email notifications.
In cases where authors have violated our code of conduct, we could delete the author's game listings, but instead of that, it would be better to restrict linking to their listings.
I'm imagining:
I've been playing around with the moderation tools in my local dev environment, and, even when I'm logged in as ifdbadmin
, I see no way to delete or hide any individual thing (a game listing, review, or "comment" on a review) without deleting/hiding the entire user who posted it and everything they've ever posted.
I guess this makes sense, because MJR's primary focus was around spam management, not around content moderation, but if I were tasked with moderating IFDB, I'd insist on the ability to delete a comment without deleting the author and all of that author's comments.
Expose a game's downloads in the API
Each time I refresh the "Related Games" section of Hadean Lands, it shows a different set of games; none of them are even remotely related to Hadean Lands. https://ifdb.tads.org/viewgame?id=u58d0mlbfwcorfi
For example, right now it says HL is related to Witch’s Girl https://ifdb.tads.org/viewgame?id=zp26o8weiphxjlby a delightful mini Twine game with easy puzzles and kid-friendly graphics.
It would be cool if there were an algorithm that actually did find games related to Hadean Lands. (But, how…?) Barring that, iInstead of an algorithm, I think "Related Games" should be a section where users can manually suggest related games, perhaps allowing upvotes/downvotes regarding whether the game is related.
Barring that, it could just show "More games by this author"
When you visit the IFDB home page for the first time (e.g. in an incognito/private window), the first/primary section of the page is "New on IFDB." This section doesn't even necessarily show new games on IFDB, (new "listings") but also new reviews of old games.
If this is your first time at IFDB, there's a good chance that you're new to IF. We almost certainly don't want to direct IF newbies to the newest games/listings/reviews; instead we want to direct them to the best games we have to offer.
Concretely, I'm imagining that IFDB home page should be:
Perhaps logged-in users could click a button to collapse the "Top Games" / "New to IF" section so they can navigate to the news/votes more quickly…?
This is when clicking on the sidebar link that says 'n users have this game on their wishlist'
I suggest to add a variable "Company" to the database, for commercial games. Infocom, Zenobi, Failbetter Games, you name it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.