Over the past month I’ve been experimenting with building a game recommendation system for itch.io. It’s really awesome how there’s so much interesting and diverse content on itch.io. A disadvantage is that there are probably plenty of games you’d love to play that you don’t even know exist! A good recommendation system is only as good as the data fed into it. Leveraging itch.io’s game organization was key to building the system.
The recommendation algorithm I decided to implement is called collaborative filtering. It works by comparing your tastes in games to other users’ tastes. For example, if you like a game that another person bought and rated 5 stars, then there’s a good chance that you’ll like some of the other stuff they are into.
There are two new ways to browse recommendations on itch.io: recommendations for your account, and recommendations for a specific game.
Check the dropdown menu in the header for a link to the new My recommendations page:
Or click here. You’ll be taken to a page listing games recommended to you based on the other games you’ve shown interest in. It combines data from the games you’ve played, downloaded, purchased and rated to suggest some games you haven’t played yet. If you haven’t done any of those things then the page might be empty! The easiest way to fill it up is to go rate some games you like! After you’ve checked out a game you should definitely rate it, that will make sure it won’t show up in your recommendations, and it will give you new recommended games!
If you just want to browse other games related to a specific game then you can find a new “Related games” link on the top right of the game page:
Not all games have recommendations yet, so this link might be unavailable for some games. To give you an example, here are some recommendations for Roguelight: http://itch.io/games-like/10349/roguelight
The algorithm is far from perfect, and it will definitely be receiving many updates over the coming weeks, but it’s definitely got some interesting results already. If you have any suggestions for improvements I’d love to hear them.