Skip to content

Writing Game Description Files

开普以尔 edited this page Jan 4, 2025 · 13 revisions

This page was written by post-editing, we are looking for volunteers who are fluent in both Chinese and English to help us with delicate human translation.

A general game description file addition process is shown in the figure below. Depending on the qualifications of the game and the richness of the game materials, we divide several stages to prepare and compose the files and then add them in FGI. You can advance to any suitable stage depending on how much information you have.

If you find any discrepancy with this guide when referring to certain game description files, please always follow this guide.

flowchart LR
  A(Start) --> threshold

  subgraph threshold [JUDGING GAME QUALIFICATION]
  B(("Does the game <br> meet the criterion?"))
  end

  B --- Yes --> meta
  B -- No --> Z

  subgraph meta [WRITING A META GAME DESCRIPTION FILE]
    C[Determine game identifier] --> D[Create a description file] --> E[Fill in name attribute] --> F[Optionally fill in replaced-by attribute] --> G[Fill in description attributes] --> H[Fill in authors attribute] --> I[Fill in tags attribute] --> J[Fill in links attribute] --> K[Fill in media attributes]
  end

  meta --> local

  subgraph local [CREATE LOCALIZAED GAME DESCRIPTION FILES]
    L[Localize name] --- M[Localize descriptions] --- N[Localize links name]
  end

  local --> cooperate

  subgraph cooperate [COLLABORATING WITH OTHERS]
    V[Submit a pull request] --> X
    W[Sending description files <br> directly to us] --> X
    X((Review and Revision))
  end

  X -- Yes --> Y[The game was added to FGI] --> Z(End)
  X -- No --> Z
Loading

Table of contents

Judging Game Qualification

If the game you want to request does not meet the admittance criterion, we will close the pull request.

Game Admittance Criterion for Pull Requests

  1. The game is a video game. That is, an electronic device must be the means of playing the game, while the player is the fundamental power source driving the game course, except for visual novels.
  2. The game is quite original. That is, the game cannot be a derivative work that is not expressly authorized by the author, except for derivative works are allowed by the author.
  3. The game is featuring furries as an important topic. That is, in the main plot of the game, furries are an important factor in the course of the game. Alternatively, in the main scenario of the game, furries are an important part of the game's scenes. FGI refers to "furries" as creatures or machines with non-human physical characteristics, and the degree of bestiality of their forms is higher than the kemonomimis.
  4. The game is available for public access. That is, the game has been officially released or there is a public test version.

Writing a Meta Game Description File

Using Python Library to Pre-generate Data Files

We can use GameYamlSpiderAndGenerator to help generate a basic YAML data file.

It can help editors improve their efficiency in writing data files and reduce time spent on repetitive tasks.

Installation

Usage

python -m gameyamlspiderandgenerator https://store.steampowered.com/app/290340/Armello/

If you encounter network connectivity issues, you can try to write your own configuration file to specify a proxy.

For more information: Wiki

Understanding FGI Games Database

Materials for Generating Game Pages

FGI extracts the game's metafile and its localization files to generate its website pages. The former is stored in games/games, and the latter is stored in the subfolder for each language under games/games/l10n.

If you want to modify an existing game page, you only need to edit the corresponding description file. If you want to create a new game page, you need to create a new description file.

Unless otherwise noted, each attribute below must be written in the metafile.

For example, the metafile for Adastra is "Adastra.yaml" under games/games, and the localization file for Simplified Chinese is "Adastra.yaml" under games/games/l10n/zh-cn.

The content of each attribute (e.g. name, description, link) in the metafile is filled in English by default. Even if the game does not have English translation, you need to create the metafile under games/games first, and then create localization files. However, this does not mean that all information in the description file must be translated into English. If there is no suitable translation, the metafile is allowed to contain text in the game's native language.

For example, although the original language of Once Upon a Breeze is Chinese, you must first create a metafile to fill in the English content, and then create a localization file for Chinese.

No purely machine-translated localization files may be provided. For Chinese, if you provide a localization file in Simplified Chinese or Traditional Chinese only, FGI will automatically provide (converted by OpenCC) a localization file in another form of Chinese.

Ways to Refer to Media Assets

There are two ways to refer to images and videos by FGI:

  • Internal reference via filename.
  • External reference via URI.

Thumbnails and avatars are always stored in games repository and referenced internally via filename. Other assets such as screenshots, videos are always referenced externally via URI.

URI must not contain query strings and must contain a recognizable media format suffix.

For example, example.com/image.cgi?filename=picture.png and example.com/image.psd are invalid URIs for FGI.

Requirements for Writing Description Files

Game description files are YAML formatted and their content formatting (such as the number and placement of spaces for indentation) must conform to YAML syntax, otherwise the file will not be processed properly by FGI. While there is very little YAML syntax to understand when filling out and modifying description files, we recommend that you refer to or adapt existing description files if you are not familiar with YAML.

FGI repositories already use .gitattributes to require git to use LF line breaks type, and LF line breaks type must be used within description files.

Furthermore, to enhance the readability of the description files, a blank line should be inserted after each primary attribute.

Game Identifier

The game identifier (ID) is a string used to refer to a game, and its game description file and corresponding resource folder are named as such.

Each game identifier is unique and non-repeatable, and may only contain letters (upper and lower case), numbers and low line _ (U+005F) from the ASCII character set, and may not begin with a single low line.

The game identifier is taken in first place to the official English name of the game (preserving the original case).​

For example, the game identifier for Mercury Abbey is "Mercury_Abbey" and its metafile and localization file are both "Mercury_Abbey.yaml".

In case of regional differences in the official English name of the game, it is taken in the following order of priority:

  1. The English form of the region where the most creators live most permanently (the region where English is the official language).
  2. The English form of the region where the most creators were born (the region where English is the official language).
  3. The English form of the region where the developer vendor is located.

If the game has no English name:

  • When the original name is in Japanese, the identifier is written by its rōmaji, and the initial letter of each phrase is capitalized.

For example, the game identifier for『オスケモアイランドの秘密』is "Osukemoairando_No_Himitsu".

  • When the original name is in Chinese, the identifier is written by its pinyin, and the initial letter of each phrase is capitalized.

For example, the game identifier for《〈苦〉〈黏〉〈寒〉〈毒〉四部曲》is "Ku_Nian_Han_Du".

If the name of the game contains spaces or special symbols, they should be replaced by an low line. Multiple low lines should be combined into a single low line.

For example, the game identifier for Them's Fightin' Herds is "Thems_Fightin_Herds".

If the name of the game is duplicated or confusing with the game already added to FGI, two low lines should be added after the game identifier, and then the developer (group, vendor) name suffix should be appended.

The identifierization of the name of the developer (group, vendor) should refer to above rules.

For example, Shelter 2 by Might and Delight is not a sequel to Shelter by rausmutt, so the game identifier for the former is "Shelter_2__Might_and_Delight".

Name Attribute (name)

name: # Name of the game

This attribute is required.

The name of the game should be given priority to the official English name (preserving the original case), followed by the most widely distributed English translation. If the game does not have an English name, the original language name is used. No aliases from any source may be used.

For example, the value of『ポリドッグパトロール』name attribute should be filled with Polidog Patrol.

If there is a regional difference in the English name of the game, it should be taken in accordance with the relevant rules in Game Identifier.

If the name has a colon : (U+003A) or a apostrophe ' (U+0027), the name should be enclosed in quotation marks " (U+0022).

For example, the value of 9:22 name attribute should be filled with "9:22".

To make it easier for non-Japanese users to search for games with Japanese names, you can refer to the relevant rules for game names in Game Identifier and Name Attribute in Create Localizaed Game Description Files to attach rōmaji to that name.

For example, the value of『バカ部』name attribute could be filled with Bakabu / バカ部.

Replaced-by Attribute (replaced-by)

replaced-by: # Identifier of a game

This attribute is optional.

If the game has been discontinued and FGI has added its remake version, this attribute should be added to the old game metafile and fill in the identifier of the new game.

Adding this attribute will remove the game from the FGI games list, but it will remain in the site search results and general search engine results. FGI will indicate at the top of the game page that this game has been replaced, with a link to the new game.

For example, after discontinuing the development of the adventure game Elysium Above, it was remade as a strategy game. So we added replaced-by attribute to the old version.

Description Attributes (brief-description | description | description-format)

Brief Description Attribute

brief-description: # Brief description of the game

This attribute is optional.

The brief description attribute carries a brief textual description of the game and is used in the standard view of the FGI game list and in the description metadata of the game page HTML. If this attribute is not added, FGI will automatically extract the first 480 single-byte characters from the full description as a brief description.

The brief description should be shorter than the full description, and if the full description is less than 480 single-byte characters, the brief description attribute may not be added. The number of characters in the brief description is recommended to be more than 200 single-byte characters, less than 400 single-byte characters, and shall not exceed 480 single-byte characters.

Full Description Attribute

description: |
  First paragraph
  Second paragraph

This attribute is required.

The full description attribute carries a complete textual description of the game. The description should be written on a new line after description: | and each paragraph must be preceded by two blank spaces.

In terms of content, both brief and full descriptions should:

  • Take the official words first.
  • No spoilers about key plot points or the plot after choosing a particular branch.
  • Do not contain sensitive information or violate local laws and regulations in the target language.

Description Format Attribute

description-format: # plain | markdown

This attribute is optional.

The formatting of full description attribute supports Markdown, which is enabled by adding markdown to description-format attribute. We do not recommend inserting media into description attributes, but if necessary, follow the rules for referencing media in Understanding FGI Games Database.

Authors Attribute (authors)

authors:
  - name: # Author A name
    role: [ role ]
  - name: # Author B name
    role: [ role 1, role 2 ]
  #

This attribute is required.

The author attribute starts with authors: and the entries are added in order of importance and popularity of authors. If the author(s) of the game are in one or more teams, all non-core author entries should be replaced by the respective team entries, with the team entries topped in order of importance and popularity.

If the author is already added in FGI Author Database, the value of the name sub-attribute must be taken from the value of the name attribute in the corresponding author description file. In other cases, the official name of the most widely known author should be filled in directly.

Each author must assign at least one role, with multiple roles for a single author separated by a comma plus a space , (U+002C, U+0020).

  • producer
  • animator
  • artist
  • character-designer
  • musician
  • programmer
  • publisher
  • scenographer
  • screenwriter
  • translator
  • voice-actor
  • others

If the author is not a core author of the game and is not associated with another game in FGI, and FGI does not have an author description file for that author. Then you should add standalone attribute to the entry for that author and enable it with a true value.

This attribute is optional.

  - name: # Author name
    standalone: true
    avatar: # Avatar reference path
    link-uri: # Author social platform links
    role: [ role ]

You can use avatar sub-attribute to specify an avatar image for the author. The naming, specification of this image should follow the rules for avatars in Writing Author Description Files, and store it in the games/assets folder named by the game identifier (if it does not exist, you need to create it yourself).

You can also use link-uri sub-attribute to link a social platform page for the author, and the author's name will be hyperlinked in that game page.

The attributes above are optional.

Tags Attribute (tags)

tags:
  Tag Category A:
    - Tag 1
    - Tag 2
    
  Tag Category B:
    - Tag 14
    
  

This attribute is required.

Tags are abstract summaries of a game. Adding well-defined tags to games helps FGI to better categorize games and optimize filtering and searching functions. The tags attribute starts with tags:, and then adds tag categories in turn, and then adds specific tags under each category in turn.

type

This tag category is required.

Used to indicate the type of game. Where yiff and gore tags are added, the game page will display a sensitive content warning.

Click here to see the tags under this category
  • action
  • adventure
  • board
  • business-sim
  • casual
  • comedy
  • dating-sim
  • fighting
  • horror
  • music
  • puzzle
  • roguelike
  • role-playing
  • shooter
  • sports
  • strategy
  • tragedy
  • visual-novel
  • non-indie
  • bara (games with more gay-oriented content)
  • yuri (games with more lesbian-oriented content)
  • yiff (games with adult content)
  • gore

species

This tag category is required.

Used to indicate the species type of main characters in game.

Click here to see the tags under this category
Felidae
  • cat
  • cheetah
  • leopard
  • lion
  • lynx
  • tiger
Canine
  • coyote
  • dog
  • fox
  • raccoon-dog
  • wolf
Reptilia
  • crocodile
  • lizard
  • snake
  • turtle
Mustelidae
  • badger
  • ferret
  • otter
  • weasel
Aquatic and Amphibian
  • dolphin
  • frog
  • orca
  • shark
Others
  • humankind
  • mixed (cross-species hybrid)
  • non-anthro (pure animal)
  • bat
  • bear
  • beaver
  • bird
  • eagle
  • cattle
  • dragon (western dragon)
  • hedgehog
  • horse
  • hyena
  • kangaroo
  • lung (eastern dragon)
  • mouse
  • monkey
  • opossum
  • pig
  • rabbit
  • raccoon
  • red-panda
  • rhino
  • panda
  • sheep
  • goat

fetish

This tag category is optional.

Used to indicate the appearance, sexual behavior, and sexual preferences of the main characters displayed in the game.

Click here to see the tags under this category
Appearance
  • futanari
  • males-only
  • females-only
  • shota
  • loli
  • muscle
Sexual Behavior
  • anal
  • blowjob
  • group
  • fisting
  • face-fucking
  • frottage
  • cockslapping
  • masturbation
  • handjob
  • rimjob
  • footjob
  • paizuri
  • brain-fuck
  • slit-vore
  • cock-vore
  • rape
Sexual Preferences
  • human-on-furry
  • animal-on-furry
  • transform
  • transfur
  • bondage
  • master-slave
  • dominance-submission
  • public-use
  • exhibitionism
  • netorare
  • mind-break
  • mind-control
  • corruption
  • parasite
  • drugs
  • body-swap
  • time-stop
  • guro
  • tentacles
  • body-modification
  • conjoined
  • muscle-growth
  • inflation
  • absorption
  • vore
  • petrification
  • stomach-deformation

misc

This tag category is optional.

Used to indicate information about the game engineering or status.

Click here to see the tags under this category
Experience
Tag Feature
freeware Main content free (demo version not included)
3d The game is mainly presented in 3D
pixel-art The game is mainly presented in pixel-art
grayscale The interface of this game has no or very little color and is mainly presented in grayscale
uncensored Images, CGs, models, etc. have not censored (consider this tag only when yiff exists)
full-audio This game offers a full audio experience with voiceovers or/and more.
Gameplay
Tag Feature
multiplayer The game is multiplayer or includes multiplayer mode
co-op The game has cooperative game mode (this tag is depend on tag multiplayer)
pvp The game supports player versus player gameplay (this tag is depend on tag multiplayer)
online The game includes online functions, such as paid purchase points, online ranking system, etc
Content
Tag Feature
multiple-endings The game has multiple different endings
multiple-series The game is included in a series of connected worldviews or plots
homophobia The game include homophobia contents
outside-furry-fandom The game is a work born outside the furry fandom
not-only-furry-topic The game is not designed with furries as the dominant topic
unofficial The game is a unoffical work
moddable The game is moddable
Technology
Tag Feature
engine-renpy The game is developed using RenPy
engine-unity The game is developed using Unity
engine-rpg-maker The game is developed using RPG Maker
engine-godot The game is developed using GoDot
engine-ue4 The game is developed using Unreal Engine 4
engine-tyranobuilder The game is developed using TyranoBuilder
adobe-flash The game is developed using Adobe Flash
drm The game has used Digital Rights Management to restrict players
Status
Tag Feature
unpublished The game has not been released
work-in-process The game is in the development (beta) stage
suspended The game development has been suspended
died The game development has been aborted or suspended for more than 2 years without signs of updates
expired The official way to download the game is no longer available
geographical The game publishers implement overly different services in different regions
centralized The main function of the game depends on a centralized server and the server cannot be deployed by the player

lang

This tag category is required.

Used to indicate the official or unofficial supported languages of the game.

Click here to see the tags under this category
Tag Language
ar Arabic
cs Czech
da Danish
de German
en English
en-unofficial English (unofficial)
es Spanish
fi Finnish
fr French
hu Hungarian
it Italian
ja Japanese
ja-unofficial Japanese (unofficial)
ko Korean
nl Dutch
no Norwegian
pl Polish
pt Portuguese
ru Russian
sv Swedish
tr Turkish
zh Chinese
zh-unofficial Chinese (unofficial)

publish

This tag category is required.

Used to indicate the platform on which the game is distributed (available).

Click here to see the tags under this category
Tag Platform
website Official website
steam Steam
itchio itch.io
google-play Google Play
apple-appstore App Store
afdian AFDIAN
patreon Patreon
epic Epic Games Store
gog GOG.com
microsoft-store Microsoft Store
booth BOOTH
digiket DiGiket
e-shop Nintendo eShop

platform

This tag category is required.

Used to indicate the operating system or platform supported by the game.

Click here to see the tags under this category
Tag OS or Platform
web Platform built with Web technology
shockwave-flash Shockwave Flash
windows Microsoft Windows
android Android
ios iOS
macos Mac OS X、OS X、macOS
linux GNU/Linux
xbox Microsoft Xbox
playstation Sony PlayStation
psp Sony PlayStation Portable
psv Sony PlayStation Vita
nintendo-switch Nintendo Switch
wii-u Nintendo Wii U
3ds Nintendo 3DS
2ds Nintendo 2DS
nds Nintendo DS

sys

This tag category is optional.

Used to indicate the internal state of the game in FGI.

Tag Meaning
staging The game page is in preview
tagme The game is not well tagged

Links Attribute (links)

links:
  - name: Link A name
    uri: URI A
  - name: Link B name
    uri: URI B
  

This attribute is required.

The links attribute must have least one link to access the game, preferably with links to official social platform accounts of the game, and also links to related resources such as patch, sponsorship, crowdfunding, wiki, etc.

Among them, social platforms may not direct to groups that are not publicly invited. Take the official social platform account first, if the game has no such account, and the author's social platform account is the most important promotion platform of the game, then you can fill in this account.

The links to access the game may not direct to unofficial sites, or official sites that bypass payment, except for those expressly authorized by the author.

We have created "Stock Link" for common links. By writing stock Links in the name sub-attribute, links name are automatically displayed on FGI in different languages, no need for translation. Stock links are also automatically equipped with a corresponding site icon.

Click here to see all stock links
Stock Link Linked site
.website Official website
.release-page Release version access (general)
.demo-version Trial version access (general)
.demo-version-steam Trial version access (Steam)
.demo-version-gog.com Trial version access (GOG.com)
.unofficial-archived-download Unofficial archive access
.steam Steam
.itch.io itch.io
.play-store Google Play
.apple-appstore App Store
.playstation-store PlayStation Store
.epic Epic Games Store
.gog.com GOG.com
.microsoft-store Microsoft Store
.booth BOOTH
.digiket DiGiket
.nintendo-e-shop Nintendo eShop
.patreon Patreon
.weibo Weibo
.furaffinity Fur Affinity
.twitter Twitter
.facebook Facebook
.tumblr Tumblr
.pixiv Pixiv
.discord Discord
.youtube Youtube
.afdian AFDIAN
.unofficial-patch-en Unofficial English patch
.unofficial-version-en Unofficial English version
.unofficial-patch-zh Unofficial Chinese patch
.unofficial-version-zh Unofficial Chinese version

We have also created URI shorthands for commonly links. Writing shorthand of URLs in the uri sub-attribute makes the data file more readable.

Click here to see all URI shorthands
Linked site URI shorthands ID source
Steam steam:ID store.steampowered.com/app/ID
Google Play Store google-play-store:ID play.google.com/store/apps/details?id=ID
Twitter twitter:ID twitter.com/ID
Facebook facebook:ID facebook.com/ID
Discord discord:ID discord.gg/ID
Patreon patreon:ID patreon.com/ID
AFDIAN afdian:ID afdian.net/a/ID
Youtube youtube:ID youtube.com/ID
Pixiv pixiv:ID pixiv.net/users/ID
Fur Affinity furaffinity:ID furaffinity.net/user/ID
Tumblr tumblr:ID ID.tumblr.com
DeviantArt deviantart:ID deviantart.com/ID
FGI misc page FGI-misc-page:ID (FGI games repository) misc-pages/ID.md

If a custom name is written, you can specify an icon for the link to replace the default icon. That is, fill in the icon sub-attribute with the file name of an icon in FGI Icon Library (without format suffix).

This attribute is optional.

  - name: Link name
    icon: Icon name
    uri: URI

Media Attributes (thumbnail | screenshots)

Thumbnail Attribute

thumbnail: thumbnail.(Image file format suffix)

This attribute is required.

Thumbnail are an important supplement to the text description showing the game style, and making suitable thumbnail can facilitate the selection of games of interest.

In terms of content, the thumbnail should be clear, beautiful and show the overall tone of the game, take the pictures officially posted first and meeting the following requirements:

  • The title text is fully revealed.
  • Opaque background.
  • Does not include extra added borders.
  • Does not contain sensitive information.

In terms of specifications, the standard (maximum) size of a thumbnail is 360px × 168px.

Make thumbnails of standard size specifications as much as possible. If the original thumbnail is smaller than the standard size, the picture should be kept 15:7 in aspect ratio by cropping the picture, and the original picture should not be forced to be enlarged. If the original thumbnail is larger than the standard size, it should be reduced, cropped, etc. to make it conform to the standard size.

The thumbnail file name is unified as thumbnail, and the format suffix is filled in according to the case. The thumbnail file should be stored in the games/assets folder named by the game identifier (if it does not exist, you need to create it yourself).

The thumbnail file size must not exceed 100 KiB, and no significant distortion (ringing effect, square effect, tonal separation, noise, etc.) must occur when compressing image.

Screenshots Attribute

screenshots:
  - Image A link
  - Image B link
  - sensitive: true
    uri: Image C link
  

This attribute is required.

The screenshots attribute can be populated with both image entries and video entries.

To insert an image, simply enter the link to the image after the - horizontal bar. If the image contains sensitive information, you should add the sensitive sub-attribute and set the value to true, and then add the uri sub-attribute to fill in the image link.

Be careful not to host images containing sensitive information through a image hosting service that prohibits uploading sensitive images, otherwise the image will be easily blocked or deleted.

To embed an HTML video, enter the MIME of the video in the mime sub-attribute of video, and then enter the video link in the uri sub-attribute. A video entry can contain videos in multiple formats, just add more links in the video attribute.

  - video:
    - mime: Video MIME (format A)
      uri: Video (format A) link 
    - mime: Video MIME (format B)
      uri: Video (format B) link 

To embed a Youtube video, you should fill in the youtube attribute with a value of identifier of the video.

  - youtube: Video identifier

Create Localizaed Game Description Files

Name Attribute

name: Official game name in the target language | Folk translation / Original name

This attribute is optional.

To translate a game name, add name attribute to the localization file in target language and fill in the official name of the game in the target language first.

If there is no official translation, only the best quality folk translation can be used, or several well-known folk translations can be included.

However, the original name must be added after folk translations with a slash / (U+002F) between the names and a space (U+0020) between names and slashes.

For example, if the folk Chinese translation of Echo is "回音", the name attribute in the Simplified Chinese localization file for Echo should be 回音 / Echo.

Description Attributes

brief-description: A brief description of target language
description: |
  Full description of the game in target language

The attributes above are optional.

To translate the brief description or full description, you should add brief description or full description attribute to the localization file in target language, and then fill in their corresponding translated text.

If a game's metafile has Markdown enabled, the description-format attribute should be added to the game's localization file as well, and Markdown enabled.

Links Name (links-tr)

links-tr:
  "Former link A name": "Translated link A name"
  "Former link B name": "Translated link B name"
  

This attribute is optional.

To translate a link name, add links-tr attribute to the localization file of target language and fill in the translation entry for the corresponding link name. Link name should be enclosed in quotation marks " (U+0022).

Appendix

Comments

# Comments

If there are special or exceptional cases when writing description files, you should note them by means of comments.

Old Identifiers Attribute (old-ids)

old-ids:
  - old identifier 1
  - old identifier 2
  

This attribute is optional.

If you want to change an identifier for a game, you should use this attribute in the metafile to list the identifiers that have been used previously.

Modification of game identifiers requires the vote of half of the FGI members (even) or more than half of the FGI members (odd) except for abstentions.

Expunge Attribute (expunge)

expunge: false | true

This attribute is optional.

Enabling this attribute will remove the game from the list of FGI games, site search results and general search engine results.

However, the game page still exist, and FGI will indicate at the top of the page that the game has been expunged. The game will still be displayed on its author's page and in its author's "More games from" widget.

If the game has not been officially released or is not in public test, expunge attribute should be added and enabled in the metafile, otherwise it should not be added.

For example, Silent Adventure is neither officially released nor open test, so a expunge attribute needs to be added and enabled for its metafiles.

Clone this wiki locally