It's time for the 8th Annual Completionator Community Top 10! Check out this thread for your chance to win a $20 Steam gift card.
moho_00 Curator Backer Posts: 7042 Registered: 6/10/2011
moho_00
# 1 - Posted on 3/25/2015 0:19:12

Okay, sit tight, this is going to be a long one :D

One of the most requested features is to incorporate more details around games, such as release dates, genres, platforms, etc. I feel the most efficient way to handle this feature is to utilize an API that can pull in the data that Completionator can use. Luckily, Giant Bomb has an API that allows me to do exactly that! During my vacation last week, I played around with the API a little bit and have solidifed the pieces of data I'd like to tackle in the first phase of integration. I'm going to go through each component and let you guys know where I see it impacting the site, as well as throw out some ideas for possible future enhancements. Obviously, if you have ANY feedback on this stuff, let me know!

So first off, I expect the most time-consuming part of this feature will be mapping games in the Giant Bomb database to the games here on Completinoator. Once I map the games, I have to load those mapping values in and then I'll have a program that runs to import the data. I only mention this because I'd really like to get cracking on this feature, but I do NOT expect to have all of the mappings completed by the time I rollout the feature. So that being said, you'll probably run across games that don't have any data on them, even though it exists on Giant Bomb. I'll gradually get everything mapped though :)

One final note. Throughout this post, whenever I refer to the "Game Details" page, I mean the one that has aggregated community statistics. Here's an example: http://www.completionator.com/Game/Details/2524

Brief Description

This is a short description about the game. For example, the text for Super Mario Bros. is "Focusing on a humble plumber and his brother setting out to rescue a Princess who has been kidnapped by a vile lizard king, Super Mario Bros. is a platformer created by Shigeru Miyamoto, published by Nintendo, and is one of the best-selling video games of all time.".

Impact - This text would be displayed on the Game Details page somewhere.

Release Dates

The API provides access to the "first release date", which for Super Mario Bros. is September 13, 1985. It also provides access to all of the individual releases and therefore release dates for a game. These releases span across platforms, regions, digital releases, etc. Given the rather messy nature of the individual releases (not in Giant Bomb's data by any means, just the fact that a game can be released soooo many times), I only plan on pulling over the "first release date". At least, that's all for now.

Impact - The release date that's pulled over would be displayed on the Game Details page somewhere.

Platforms

Currently, games in the Completionator database are completely standalone, in regards to platforms. That means when you add them to your collection, you can select any platform you want. I did this originally because I didn't want to have to put together and maintain that relationship. I do NOT plan on changing that whatsoever, so you'll have the freedom to enter games on whatever platform you want. However, there is a lot of value in having Completionator know what the relationship is, since I can pull it from this API.

Impact 1 - The biggest impact would be when you add a game to your collection. The platform dropdown would be sorted such that the platforms that the game was released on (at least, according to the data I receive) would be at the top of the list, alphabetically. There would then be a "blank" item that separates the bottom half of the list, which would contain all of the platforms loaded on Completionator. The idea here is the platforms the game was released on are at the top so you can quickly find the one you're after, or you can access the full list (for whatever reason you might need it).

Impact 2 - A new Platform filter would be added to the Game Search page so, for example, you could find all Dreamcast games loaded on Completionator. By utilizing the existing filters, you could fairly easily find all of the Dreamcast games you don't have in your collection, which would be very helpful if you're trying to go for a complete set. The one caveat here is not all games for every platform have been loaded onto Completionator yet. There'll be more on this in the "Future Enhancements" section below.

Impact 3 - All of the platforms would be displayed on the Game Details page somewhere. Each platform would be a hyperlink that would take you to the Game Search page and would set the aforementioned Platform filter to whatever you had clicked on.

Developers / Publishers

This one is pretty self-explanatory, but it's somewhat complicated by the fact that a game can have multiple developers and publishers. It's not a huge deal by any means, but will require more work than the brief description and release date.

Impact 1 - Two new filters would be added to the Game Search page, one for Developer and one for Publisher. I anticipate these dropdowns (especially Developer) will be rather large, so I might have to come up with something different than the ones the site uses currently. I'll start with what we have already and can adjust, if necessary.

Impact 2 - The developers and publishes would be displayed on the Game Details page somewhere. Each developer / publisher would be a hyperlink that would take you to the Game Search page and would set the appropriate filter to whatever you had clicked on.

Genres

Alright, now this is the one that I could really use some feedback on. I feel pretty good about the ones mentioned above (but obviously welcome any feedback you have!!), but this is something we could go a few different ways with. My initial thought was to add these as global tags, which we had talked about before, and go ahead and wire up that infrastructure. After thinking about if for a while though, I thought, this should be really clean data, so why not make these their own data points so you can do stuff with genres AND tags. There's nothing preventing us from eventually converting these into global tags (whenever that functionality surfaces), so that's where I'm at right now. The other thing with global tags is I don't think we have enough users / data to really start scraping those yet. So assuming genres go in as their own data points that hang off of games (just like all of the other stuff I mentioned above), here's what the impact would be.

Impact 1 - A new Genre filter would be added to the Game Search page.

Impact 2 - All of the genres would be displayed on the Game Details page somewhere. Each genre would be a hyperlink that would take you to the Game Search page and would set the aforementioned Genre filter to whatever you had clicked on.

Impact 3 - A new Genre filter would be added to the Collection Search page. This is where the clear distinction between tags will become apparent. We're running out of room on this page, so I might have to get creative :P

Impact 4 - A new Genre column would be added to the Collection Search page.

Future Enhancements

Game Search Column Tweaks - I don't know about you guys, but I don't use the Owned, Now Playing, Backlogged, and Wish Listed columns on this page. I think it's neat info to have on the Game Details page, but on the Game Search page, I'm not sure how relevant it is. I'm considering replacing some or all of those with some of the new data we're going to have. The main problem here is a game can have multiples of certain elements (i.e. developers, publishers, and genres). That means sorting won't work on those columns (or at least, not 100% for the games with multiples), but otherwise I think it could work. Any thoughts on removing / adding any these columns? While we're on the topic, any other tweaks to the columns we have on this page?

Release Date Filter on Game Search - This is a fringe phase 1 feature. I'm just torn on how to implement it. I could see it being a dropdown where you pick one or more years, or I could see it being TWO dropdowns where you select range of years. I'm leaning towards keeping it simple with just one dropdown.

Missing Games - Well, this is a pretty big one, I think :P We have over 9000 games in the Completionator database right now, but there's still a ton out there to be added. I've gradually been trying to add complete NTSC sets for various platforms (Saturn, Dreamcast, and Virtual Boy are done, aside from homebrew / indie releases and N64 and 32X are pretty far along), so I'd probably continue with the approach of selecting a platform and adding whatever is missing. Having an API available should make it easier to come up with complete lists since scraping Wikipedia is very tedious.

Complete Set Reports - As I mentioned before, with this new data, we'll have an opportunity to run reports to see what games you're missing on a certain platform. This is obviously very dependent on getting all of the games loaded! But the infrastructure will be in place.

Regions - Regions are something I'd really like to include, but they appear to be captured at the "release" level (see the Platforms section above), which makes them a little more difficult to capture. I think this data element is critical in being able to run the complete set reports mentioned above, so it's definitely on my radar.

Post Edited on 3/25/2015 0:23:55
boffo97 Posts: 767 Registered: 1/25/2015
boffo97
# 2 - Posted on 3/25/2015 3:21:48

I wouldn't mind Giant Bomb being used to supplement info here... but before I found this site, I was using Darkadia (whose only advantage over here is that you can make a virtual shelf with all your games on it, which looks much like GoG's shelf display) and they used Giant Bomb. The problem was that there were games I had that weren't on Giant Bomb, and it's very hard to add info there (particularly box pictures) until you become an established user.

So, GB supplemented by what you're already doing: Good. Relying on GB exclusively: Bad.

Marcelloz Curator Backer Posts: 277 Registered: 9/14/2014
Marcelloz071
# 3 - Posted on 3/25/2015 8:10:37

First of all great idea to pull info from other sources into your website to enhance the experience. Giant Bomb is a great source of information, especially if it concerns the older (console) games. They are wonderfully described and contain a ton of information.

I used the API myself for some years to pull data like name, boxart and release date into my catalogue system where I keep record of all my games. But adding is, as boffo97 mentioned, is a pain in the ass. I did it myself for quite some time until I was banned because... I copy-pasted the official taglines of the games (hey, i'm no writer of taglines), and because that isn't original content I was violating their rules. Pretty stupid if you ask me because I was really adding a lot of content. Using a new account didn't work out because it takes a long, long time before you can add and edit the way you want without waiting for some stupid moderator.

That being said and done, I threw out the giant bomb API in favour of the Steam API. Mainly because that is where 95% of my new games come from. Pulling data from the steam API (http://store.steampowered.com/api/appdetails?appids=100) is really easy so consider including that one. That data is available immediately provided you store the actual steamid, which you probably do.

And to give you a headstart with the mapping, I can give you a list of at least 1600 mappings between giant bomb and steam, if you are interested ;-)

About the fields;
names; GB uses the USA names which can sometimes be confusing. For instance Anno 1404 is called 'Dawn of Discovery' in the USA. That is something you need to know if you search for the right data. This can be confusing.
release date is tied I think to platform and region. As you don't have regional information I bet you could pick the earliest. Unfortunately GB doesn't include EU releases as we don't exist (EU stops at the UK it looks like, which is pretty dumb thinking imo).

Platforms and publishers; I only use PC and don't really care for publishers. Nice to have that info available though.

Genre's : the genre system of GB is not complete and was clearly made up in 2008 and then not really extended afterward. If you look at the list, it has weird genre's like 'tennis', 'billiard' and 'wresting' . So I wouldn't recommend using them 1:1, not after cleaning them up and perhaps sync them with the Steam genre's. Probably best is to define your own list of Genre's (should be around 10-20 I think) and map the game to these. That way you operate independently from those sites. Make them global (readonly) system tags to make them consistent throughout the game library.

While decorating your game library with extra info, consider importing the features that Steam has for the games. These are things like 'Single player', 'co-op', 'achievements', etc. Pretty useful information.

and while you add the info, perhaps including a link to GB and Steam would be handy to navigate to the actual game info at the source. :)

Didn't get to your feature enhancements section, perhaps tonight :)

moho_00 Curator Backer Posts: 7042 Registered: 6/10/2011
moho_00
# 4 - Posted on 3/28/2015 12:31:21

@boffo97 - I'll continue adding games the way I have been (including box art). So I'll be using the supplemental option :) Also, regarding the shelf view, that's something that's been requested a number of times. It's on my list of things to do, but keep in mind, I'm not a UI guy by any means, so it probably won't be super slick like GOG or anything.

@Marcelloz - I didn't even think about the Steam API, I'll keep that in mind to potentially pull in additional info, like you mentioned. That's a future version though ;)

I've somewhat handled the regional name differences already. I try to add them to Completionator as I see them (for example, Anno 1404 is already covered). I've noticed sites track region in different ways, so it'll be interesting to see how all of that data ports over since Completionator is different than Giant Bomb.

Regarding genres, I hadn't looked into them too much on Giant Bomb, but I agree, it sounds like I'll need to map those :P Once I get to that component, I'll post here and get you guys to weigh in on what genres to use.

As for a progress update, I laid down the foundation yesterday and have an application that will access the API and pull over the description, release date, and platforms / regions. None of this data has been hooked up to the website yet. And I've mapped about 450 out of 9000 games so far. My goal for next weekend is to start surfacing some of this data on the website, so you'll hopefully start seeing it in a week or so.

moho_00 Curator Backer Posts: 7042 Registered: 6/10/2011
moho_00
# 5 - Posted on 4/4/2015 1:15:11

@Marcelloz - Thanks for sending that mappings file!! I can already tell it will save me quite a bit of time for those Steam games :D

moho_00 Curator Backer Posts: 7042 Registered: 6/10/2011
moho_00
# 6 - Posted on 4/11/2015 18:04:51

I just pushed out the first release of this integration. It includes pretty much everything I laid out, aside from the genre stuff. Please note that I'm only about 1/3 of the way through mapping the games and even that 1/3 hasn't fully been imported yet. I'll continue to get everything mapped / imported, so we should gradually have everything filled out. If you're curious what the Game Details page looks like for a game that's been imported, check this one out: http://www.completionator.com/Game/Details/47

As always, let me know what you think!