Jump to content

Game Metadata

From Game Discovery Project

Game developers could add to their websites a simple metadata file that contains all the essential details about their game(s) in a format that is easy to parse and aggregate by potential applications (websites, indexes, catalogs, databases, search engines, game launchers, etc.).

By standardizing the location and format of this metadata we can facilitate automated discovery processes (e.g. the development of web crawlers) and aggregation (e.g. building a library of games in a database).

By having developers host these metadata files themselves we give them ownership of the details of their games, how they're presented (to some degree), and where to drive interested players to download or purchase their games.

Metadata Format

JSON5

JSON is easy to read and write both in code and by hand which makes it a reasonable choice. Specifically, we should use JSON5 for the added features.

File Encoding

The metadata file should be encoded as UTF-8.

What about RSS?

In some ways, the game metadata schema we're defining resembles parts of RSS. Should we explore the possibility of extending RSS instead of creating a new schema?

Metadata Contents

The Game Metadata file should contain the essential details about a game. For example: title, developer, publisher, description, genre, URL(s) to buy or download, etc. We should include information that would be useful to a potential player when browsing games to check out. We can look at existing platforms like Steam and itch.io for inspiration.

We'll need to decide exactly which details we want to include and how they should be represented in JSON.

Please see the Game Metadata Contents page for the detailed contents.

One Game or Many?

Should a game metadata file always represent a single game or should it be possible to include metadata for multiple games in a single file?

Developer Signature

We may want to include a means of signing a metadata file with a digital signature so users can validate that the data was authored by the original developer.

Distribution

There are many potential ways that a game metadata file could be distributed but keeping in mind the objective of discoverability we should start with web-based distribution.

Well-known URI

There's an established standard for web-based metadata files being stores in a special .well-known subfolder. We could add a new file here with a standardized name (e.g. game-metadata.json) to make the game metadata easy to find.

HTML Meta Tags

The metadata file could also be linked to a webpage using a <link> or <meta> tag in the <head> section. For example:

<link rel="alternate" type="application/game+metadata" href="game-metadata.json" />

Included with Game

The metadata file could even be included in the distribution of the game itself. This could be useful in the development of game launchers.

Metadata Applications

How will these metadata files be used? We probably shouldn't be very prescriptive about this, at least not from the perspective of defining the game metadata.

However, here are some possible ways that the data could be used:

  • Building a web crawler that automatically discovers game metadata throughout the web to compile a comprehensive database.
  • Building a curated index of games where developers can submit their games as metadata files or links.
  • Using an index of game metadata (possibly compiled by another party) to build a website that resembles familiar platforms like Steam (except users will need to navigate to the developer website to make a purchase).
  • Similar to the above but extended to a desktop game launcher.

Please use the Game Metadata Applications page to discuss this topic in more detail.

Potential Issues

Bad actors could publish metadata files for other people's games

For example, a bad actor could publish a game metadata file with a link to a malicious website, even for a game they didn't make. If this malicious metadata is picked up by indexes/catalogs/search engines it could mislead players into thinking this is the official website for this game.

Including a developer signature (see above) would help protect against this.

The Game Metadata file could be taken down

The original metadata file could be taken down for a number of reasons:

  • The developer wants to delist their own game
    • We'll probably need a delisting process on the application side, or a special flag within the metadata to indicate a delisting request.
  • The developer moves their metadata file to a new location
  • The host deletes the metadata file

In general, we'll want to implement a reliable means of determining the developer's intent and react appropriately.