games.yaml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. type: seq
  2. sequence:
  3. - include: game
  4. schema;game:
  5. type: map
  6. mapping:
  7. name:
  8. required: True
  9. type: str
  10. desc: Name of the clone
  11. originals:
  12. required: True
  13. type: seq
  14. sequence:
  15. - type: str
  16. unique: True
  17. desc: Name(s) of games this clones
  18. type:
  19. required: True
  20. type: str
  21. enum: ['remake', 'clone', 'official', 'similar', 'tool']
  22. repo:
  23. required: False # Work towards making it True
  24. type: str
  25. desc: URL where the source code can be found; e.g. a GitHub project page
  26. url:
  27. type: str
  28. desc: URL of the game's main page (if any; should be different from repo)
  29. feed:
  30. type: str
  31. desc: URL of RSS/Atom feed for the game's news, or releases
  32. development:
  33. type: str
  34. enum: ['complete', 'very active', 'active', 'sporadic', 'halted']
  35. desc: |
  36. Complete: development stopped but game is complete<br>
  37. Very active: many commits within the past week<br>
  38. Active: commits within the past month<br>
  39. Sporadic: commits within the past year<br>
  40. Halted: no commits within the past year
  41. status:
  42. required: True
  43. type: str
  44. enum: ['playable', 'semi-playable', 'unplayable', 'N/A']
  45. desc: |
  46. Playable: all major features working, full game can be completed<br>
  47. Semi-playable: game runs and some parts of the game playable<br>
  48. Unplayable: game cannot be played, e.g. can only load assets<br>
  49. N/A: does not apply, i.e. for tools
  50. multiplayer:
  51. type: seq
  52. sequence:
  53. - type: str
  54. enum: ['Competitive', 'Local', 'Online', 'LAN', 'Split-screen', 'Co-op', 'Hotseat', 'Matchmaking']
  55. unique: True
  56. content:
  57. type: str
  58. enum: ['commercial', 'free', 'open', 'swappable']
  59. desc: |
  60. Commercial: requires data from original game, which is not free<br>
  61. Free: game data is free or can be obtained for free<br>
  62. Open: game data has an open source license<br>
  63. Swappable: game data is commercial but can be swapped with open source replacements
  64. langs:
  65. type: seq
  66. desc: Main programming language(s) used for the game, e.g. C++
  67. sequence:
  68. - type: str
  69. unique: True
  70. frameworks:
  71. type: seq
  72. desc: Framework(s) or engine(s) used for the game, e.g. SDL2
  73. sequence:
  74. - type: str
  75. unique: True
  76. licenses:
  77. required: True
  78. type: seq
  79. sequence:
  80. - include: licenses
  81. unique: True
  82. info:
  83. type: str
  84. desc: Any notable information about the game
  85. added:
  86. type: date
  87. format: "%Y-%m-%d"
  88. desc: Date when this game was first added to OSGC
  89. updated:
  90. required: True
  91. type: date
  92. format: "%Y-%m-%d"
  93. desc: Date when this game entry was last updated in OSGC (use today's date)
  94. images:
  95. type: seq
  96. sequence:
  97. - type: str
  98. pattern: https:\/\/.+
  99. unique: True
  100. desc: URLs of screenshots for the game (HTTPS only)
  101. video:
  102. type: map
  103. mapping:
  104. youtube:
  105. type: str
  106. range:
  107. min: 11
  108. max: 11
  109. desc: 11-char video ID e.g. for https://www.youtube.com/watch?v=DowgWKtGAD8, use "DowgWKtGAD8"
  110. vimeo:
  111. type: int
  112. desc: Numeric video ID e.g. for https://vimeo.com/10245458, use "10245458"
  113. moddb:
  114. type: int
  115. desc: Numeric video ID; copy the embed code, look for e.g. https://www.moddb.com/media/iframe/535281, use "535281"
  116. indiedb:
  117. type: int
  118. desc: Numeric video ID; copy the embed code, look for e.g. https://www.indiedb.com/media/iframe/535281, use "535281"
  119. # Based on SPDX license codes
  120. # https://spdx.org/licenses/
  121. schema;licenses:
  122. type: str
  123. enum: [
  124. 'Custom', # Catch-all for custom licenses
  125. 'Multiple', # Catch-all for multiple licenses
  126. 'PD', # Public Domain
  127. 'As-is', # Catch-all for as-is, as-available licenses
  128. 'AFL3', # Academic Free License
  129. 'AGPL3',
  130. 'Apache',
  131. 'Artistic',
  132. 'BSD',
  133. 'BSD2',
  134. 'BSD4',
  135. 'BSL',
  136. 'bzip2',
  137. 'CC0',
  138. 'CC-BY',
  139. 'CC-BY-NC',
  140. 'CC-BY-NC-ND',
  141. 'CC-BY-NC-SA',
  142. 'CC-BY-SA',
  143. 'GPL1',
  144. 'GPL2',
  145. 'GPL3',
  146. 'IJG', # Independent JPEG Group License
  147. 'ISC',
  148. 'JRL', # Java Research License
  149. 'LGPL2',
  150. 'LGPL3',
  151. 'Libpng',
  152. 'MAME', # MAME or MAME-like License
  153. 'MIT',
  154. 'MPL', # Mozilla Public License
  155. 'MS-PL', # Microsoft Public License
  156. 'NGPL', # Nethack General Public License,
  157. 'OFL', # SIL Open Font License
  158. 'Unlicense',
  159. 'WTFPL', # Do What The F*ck You Want To Public License
  160. 'Zlib',
  161. ]