Giant Bomb (API info) is probably going to be your best bet. They have a very large database of games, and they keep track of details like release date, genre, platforms, publishers, franchises, characters, locations, etc. However, they restrict their API to non-commercial use and 200 requests/hour.
Another one to check out is TheGamesDB (API info). Their database doesn't support some of the more advanced stuff Giant Bomb has like locations, characters, etc, but they are much less restrictive with their data. Unfortunately, their API is known for having a fair bit of downtime -- I wouldn't recommend relying on them for a user-facing app.
There's also IGDB (API info), which is also free and emphasizes that they allow commercial use.