games.yaml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  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. type: str
  43. enum: ['playable', 'semi-playable', 'unplayable']
  44. desc: |
  45. Playable: all major features working, full game can be completed<br>
  46. Semi-playable: game runs and some parts of the game playable<br>
  47. Unplayable: game cannot be played, e.g. can only load assets
  48. multiplayer:
  49. type: seq
  50. sequence:
  51. - type: str
  52. enum: ['Competitive', 'Local', 'Online', 'LAN', 'Split-screen', 'Co-op', 'Hotseat', 'Matchmaking']
  53. unique: True
  54. content:
  55. type: str
  56. enum: ['commercial', 'free', 'open', 'swappable']
  57. desc: |
  58. Commercial: requires data from original game, which is not free<br>
  59. Free: game data is free or can be obtained for free<br>
  60. Open: game data has an open source license<br>
  61. Swappable: game data is commercial but can be swapped with open source replacements
  62. langs:
  63. type: seq
  64. desc: Main programming language(s) used for the game, e.g. C++
  65. sequence:
  66. - type: str
  67. unique: True
  68. frameworks:
  69. type: seq
  70. desc: Framework(s) or engine(s) used for the game, e.g. SDL2
  71. sequence:
  72. - type: str
  73. unique: True
  74. licenses:
  75. required: True
  76. type: seq
  77. sequence:
  78. - include: licenses
  79. unique: True
  80. info:
  81. type: str
  82. desc: Any notable information about the game
  83. added:
  84. type: date
  85. format: "%Y-%m-%d"
  86. desc: Date when this game was first added to OSGC
  87. updated:
  88. required: True
  89. type: date
  90. format: "%Y-%m-%d"
  91. desc: Date when this game entry was last updated in OSGC (use today's date)
  92. images:
  93. type: seq
  94. sequence:
  95. - type: str
  96. pattern: https:\/\/.+
  97. unique: True
  98. desc: URLs of screenshots for the game (HTTPS only)
  99. video:
  100. type: map
  101. mapping:
  102. youtube:
  103. type: str
  104. range:
  105. min: 11
  106. max: 11
  107. desc: 11-char video ID e.g. for https://www.youtube.com/watch?v=DowgWKtGAD8, use "DowgWKtGAD8"
  108. vimeo:
  109. type: int
  110. desc: Numeric video ID e.g. for https://vimeo.com/10245458, use "10245458"
  111. moddb:
  112. type: int
  113. desc: Numeric video ID; copy the embed code, look for e.g. https://www.moddb.com/media/iframe/535281, use "535281"
  114. indiedb:
  115. type: int
  116. desc: Numeric video ID; copy the embed code, look for e.g. https://www.indiedb.com/media/iframe/535281, use "535281"
  117. # Based on SPDX license codes
  118. # https://spdx.org/licenses/
  119. schema;licenses:
  120. type: str
  121. enum: [
  122. 'Custom', # Catch-all for custom licenses
  123. 'Multiple', # Catch-all for multiple licenses
  124. 'PD', # Public Domain
  125. 'As-is', # Catch-all for as-is, as-available licenses
  126. 'AFL3', # Academic Free License
  127. 'AGPL3',
  128. 'Apache',
  129. 'Artistic',
  130. 'BSD',
  131. 'BSD2',
  132. 'BSD4',
  133. 'BSL',
  134. 'bzip2',
  135. 'CC0',
  136. 'CC-BY',
  137. 'CC-BY-NC',
  138. 'CC-BY-NC-ND',
  139. 'CC-BY-NC-SA',
  140. 'CC-BY-SA',
  141. 'GPL1',
  142. 'GPL2',
  143. 'GPL3',
  144. 'IJG', # Independent JPEG Group License
  145. 'ISC',
  146. 'JRL', # Java Research License
  147. 'LGPL2',
  148. 'LGPL3',
  149. 'Libpng',
  150. 'MAME', # MAME or MAME-like License
  151. 'MIT',
  152. 'MPL', # Mozilla Public License
  153. 'MS-PL', # Microsoft Public License
  154. 'NGPL', # Nethack General Public License,
  155. 'OFL', # SIL Open Font License
  156. 'Unlicense',
  157. 'WTFPL', # Do What The F*ck You Want To Public License
  158. 'Zlib',
  159. ]