entries cleanup

This commit is contained in:
Trilarion 2020-09-07 23:32:46 +02:00
parent ec233f2f6a
commit cd63ad2c20
463 changed files with 588 additions and 961 deletions

View File

@ -7,6 +7,7 @@ https://github.com/SadConsole/SadConsole
https://github.com/tlgkccampbell/ultraviolet https://github.com/tlgkccampbell/ultraviolet
https://github.com/amerkoleci/Vortice.Windows https://github.com/amerkoleci/Vortice.Windows
https://github.com/horde3d/Horde3D https://github.com/horde3d/Horde3D
https://github.com/delaford/game
https://github.com/cxong/cdogs-sdl https://github.com/cxong/cdogs-sdl
https://moaiwebsite.github.io/ https://moaiwebsite.github.io/
http://cyxdown.free.fr/bs/ http://cyxdown.free.fr/bs/

View File

@ -18,118 +18,47 @@ import re
import utils.constants import utils.constants
from utils import constants as c, utils, osg from utils import constants as c, utils, osg
def extract_links():
def update_readme_and_tocs(infos):
""" """
Recounts entries in sub categories and writes them to the readme. Parses all entries and extracts http(s) links from them
Also updates the _toc files in the categories directories.
Note: The Readme must have a specific structure at the beginning, starting with "# Open Source Games" and ending
on "A collection.."
Needs to be performed regularly.
"""
print('update readme and toc files')
# completely delete content of toc path
for file in os.listdir(c.tocs_path):
os.remove(os.path.join(c.tocs_path, file))
# read readme
readme_file = os.path.join(c.root_path, 'README.md')
readme_text = utils.read_text(readme_file)
# compile regex for identifying the building blocks in the readme
regex = re.compile(r"(.*?)(\[comment\]: # \(start.*?end of autogenerated content\))(.*)", re.DOTALL)
# apply regex
matches = regex.findall(readme_text)
if len(matches) != 1:
raise RuntimeError('readme file has invalid structure')
matches = matches[0]
start = matches[0]
end = matches[2]
tocs_text = ''
# split infos
infos_games, infos_tools, infos_frameworks, infos_libraries = osg.split_infos(infos)
# create games, tools, frameworks, libraries tocs
title = 'Games'
file = '_games.md'
tocs_text += '**[{}](entries/tocs/{}#{})** ({}) - '.format(title, file, title, len(infos_games))
create_toc(title, file, infos_games)
title = 'Tools'
file = '_tools.md'
tocs_text += '**[{}](entries/tocs/{}#{})** ({}) - '.format(title, file, title, len(infos_tools))
create_toc(title, file, infos_tools)
title = 'Frameworks'
file = '_frameworks.md'
tocs_text += '**[{}](entries/tocs/{}#{})** ({}) - '.format(title, file, title, len(infos_frameworks))
create_toc(title, file, infos_frameworks)
title = 'Libraries'
file = '_libraries.md'
tocs_text += '**[{}](entries/tocs/{}#{})** ({})\n'.format(title, file, title, len(infos_libraries))
create_toc(title, file, infos_libraries)
# create by category
categories_text = []
for keyword in utils.constants.recommended_keywords:
infos_filtered = [x for x in infos if keyword in x['keywords']]
title = keyword.capitalize()
name = keyword.replace(' ', '-')
file = '_{}.md'.format(name)
categories_text.append('**[{}](entries/tocs/{}#{})** ({})'.format(title, file, name, len(infos_filtered)))
create_toc(title, file, infos_filtered)
categories_text.sort()
tocs_text += '\nBy category: {}\n'.format(', '.join(categories_text))
# create by platform
platforms_text = []
for platform in utils.constants.valid_platforms:
infos_filtered = [x for x in infos if platform in x.get('platform', [])]
title = platform
name = platform.lower()
file = '_{}.md'.format(name)
platforms_text.append('**[{}](entries/tocs/{}#{})** ({})'.format(title, file, name, len(infos_filtered)))
create_toc(title, file, infos_filtered)
tocs_text += '\nBy platform: {}\n'.format(', '.join(platforms_text))
# insert new text in the middle (the \n before the second comment is necessary, otherwise Markdown displays it as part of the bullet list)
text = start + "[comment]: # (start of autogenerated content, do not edit)\n" + tocs_text + "\n[comment]: # (end of autogenerated content)" + end
# write to readme
utils.write_text(readme_file, text)
def create_toc(title, file, entries):
""" """
# regex for finding urls (can be in <> or in ]() or after a whitespace
regex = re.compile(r"[\s\n]<(http.+?)>|]\((http.+?)\)|[\s\n](http[^\s\n,]+?)[\s\n,]")
# iterate over all entries
urls = set()
for _, _, content in entry_iterator():
# apply regex
matches = regex.findall(content)
# for each match
for match in matches:
# for each possible clause
for url in match:
# if there was something (and not a sourceforge git url)
if url:
urls.add(url)
urls = sorted(list(urls), key=str.casefold)
return urls
def split_infos(infos):
""" """
# file path Split into games, tools, frameworks, libraries
toc_file = os.path.join(c.tocs_path, file) """
games = [x for x in infos if not any([y in x['keywords'] for y in ('tool', 'framework', 'library')])]
tools = [x for x in infos if 'tool' in x['keywords']]
frameworks = [x for x in infos if 'framework' in x['keywords']]
libraries = [x for x in infos if 'library' in x['keywords']]
return games, tools, frameworks, libraries
# header line
text = '[comment]: # (autogenerated content, do not edit)\n# {}\n\n'.format(title)
# assemble rows
rows = []
for entry in entries:
rows.append('- **[{}]({})** ({})'.format(entry['Name'], '../' + entry['file'], ', '.join(
entry['code language'] + entry['code license'] + entry['state'])))
# sort rows (by title)
rows.sort(key=str.casefold)
# add to text
text += '\n'.join(rows)
# write to toc file
utils.write_text(toc_file, text)
def check_validity_external_links(): def check_validity_external_links():
@ -220,28 +149,6 @@ def check_validity_external_links():
print('{}: {} - exception {}'.format(names, url, error_name)) print('{}: {} - exception {}'.format(names, url, error_name))
def check_template_leftovers():
"""
Checks for template leftovers.
Should be run only occasionally.
"""
print('check for template leftovers')
# load template and get all lines
text = utils.read_text(os.path.join(c.root_path, 'template.md'))
text = text.split('\n')
check_strings = [x for x in text if x and not x.startswith('##')]
# iterate over all entries
for _, entry_path, content in osg.entry_iterator():
for check_string in check_strings:
if content.find(check_string) >= 0:
raise RuntimeError('{}: found {}'.format(os.path.basename(entry_path), check_string))
def fix_entries(): def fix_entries():
""" """
Fixes the keywords, code dependencies, build systems, .. entries, mostly by automatically sorting them. Fixes the keywords, code dependencies, build systems, .. entries, mostly by automatically sorting them.
@ -879,72 +786,6 @@ def check_validity_backlog():
print('{} redirected to {}, {}'.format(url, r.url, r.history)) print('{} redirected to {}, {}'.format(url, r.url, r.history))
def update_inspirations(infos):
"""
"""
print('update inspirations')
# collect information
originals = {}
for info in infos:
name = info['Name']
keywords = info['keywords']
ins = [x[12:] for x in keywords if x.startswith('inspired by ')]
if ins:
ins = ins[0].split(' + ')
for original in ins:
if original in originals:
originals[original].append(name)
else:
originals[original] = [name]
inspirations_file = os.path.join(c.root_path, 'inspirations.md')
inspirations = '[comment]: # (partly autogenerated content, edit with care, read the manual before)\n'
inspirations += '# Inspirations ({})\n\n'.format(len(originals)) # add number of inspirations
# iterate through originals alphabetically sorted
for original, names in sorted(originals.items(), key=lambda x: str.casefold(x[0])):
inspirations += '## {} ({})\n\n'.format(original, len(names))
inspirations += '- Inspired entries: {}\n\n'.format(', '.join(sorted(names, key=str.casefold)))
# write to statistics file
utils.write_text(inspirations_file, inspirations)
def update_developer(infos):
"""
"""
print('update developer')
# collect information
developer = {}
for info in infos:
if 'developer' in info:
name = info['Name']
devs = info['developer']
for dev in devs:
if dev in developer:
developer[dev].append(name)
else:
developer[dev] = [name]
developer_file = os.path.join(c.root_path, 'developer.md')
content = '[comment]: # (partly autogenerated content, edit with care, read the manual before)\n'
content += '# Developer ({})\n\n'.format(len(developer)) # add number of developer
# iterate through developers alphabetically sorted
for dev, names in sorted(developer.items(), key=lambda x: str.casefold(x[0])):
content += '## {} ({})\n\n'.format(dev, len(names))
content += '- Games: {}\n\n'.format(', '.join(sorted(names, key=str.casefold)))
# write to statistics file
utils.write_text(developer_file, content)
def check_code_dependencies(infos): def check_code_dependencies(infos):
""" """
@ -984,50 +825,20 @@ def check_code_dependencies(infos):
if __name__ == "__main__": if __name__ == "__main__":
# check_validity_backlog() check_validity_backlog()
# clean backlog
game_urls = osg.extract_links()
text = utils.read_text(os.path.join(c.root_path, 'code', 'rejected.txt'))
regex = re.compile(r"\((http.*?)\)", re.MULTILINE)
matches = regex.findall(text)
rejected_urls = []
for match in matches:
urls = match.split(',')
urls = [x.strip() for x in urls]
rejected_urls.extend(urls)
game_urls.extend(rejected_urls)
more_urls = []
for url in game_urls:
if url.startswith('https://web.archive.org/web'):
# print(url) # sometimes the http is missing in archive links (would need proper parsing)
url = url[url.index('http', 5):]
more_urls.append(url)
game_urls.extend(more_urls)
stripped_game_urls = [utils.strip_url(x) for x in game_urls]
clean_backlog(stripped_game_urls)
# check for unfilled template lines
check_template_leftovers()
# fix entries # fix entries
fix_entries() fix_entries()
# assemble info
infos = osg.assemble_infos()
# recount and write to readme and to tocs # recount and write to readme and to tocs
update_readme_and_tocs(infos) update_readme_and_tocs(infos)
# generate report # generate report
update_statistics(infos) update_statistics(infos)
# update inspirations
# update_inspirations(infos)
# update developers
# update_developer(infos)
# update database for html table # update database for html table
export_json(infos) export_json(infos)

View File

@ -43,7 +43,7 @@ valid_fields = ('File', 'Title') + valid_properties + ('Note', 'Building')
url_fields = ('Home', 'Media', 'Play', 'Download', 'Code repository') url_fields = ('Home', 'Media', 'Play', 'Download', 'Code repository')
valid_url_prefixes = ('http://', 'https://', 'git://', 'svn://', 'ftp://', 'bzr://', '@see-') valid_url_prefixes = ('http://', 'https://', 'git://', 'svn://', 'ftp://', 'bzr://', '@see-', '@not-', '?')
valid_building_properties = ('Build system', 'Build instructions') valid_building_properties = ('Build system', 'Build instructions')
valid_building_fields = valid_building_properties + ('Note',) valid_building_fields = valid_building_properties + ('Note',)
@ -63,8 +63,8 @@ known_languages = (
'C++', 'Clojure', 'CoffeeScript', 'ColdFusion', 'D', 'DM', 'Dart', 'Dia', 'Elm', 'Emacs Lisp', 'F#', 'GDScript', 'C++', 'Clojure', 'CoffeeScript', 'ColdFusion', 'D', 'DM', 'Dart', 'Dia', 'Elm', 'Emacs Lisp', 'F#', 'GDScript',
'Game Maker Script', 'Go', 'Groovy', 'Haskell', 'Haxe', 'Io', 'Java', 'JavaScript', 'Kotlin', 'Lisp', 'Lua', 'Game Maker Script', 'Go', 'Groovy', 'Haskell', 'Haxe', 'Io', 'Java', 'JavaScript', 'Kotlin', 'Lisp', 'Lua',
'MegaGlest Script', 'MoonScript', 'None', 'OCaml', 'Objective-C', 'PHP', 'Pascal', 'Perl', 'Python', 'QuakeC', 'R', 'MegaGlest Script', 'MoonScript', 'None', 'OCaml', 'Objective-C', 'PHP', 'Pascal', 'Perl', 'Python', 'QuakeC', 'R',
"Ren'py", 'Ruby', 'Rust', 'Scala', 'Scheme', 'Script', 'Shell', 'Swift', 'TorqueScript', 'TypeScript', 'Vala', "Ren'Py", 'Ruby', 'Rust', 'Scala', 'Scheme', 'Script', 'Shell', 'Swift', 'TorqueScript', 'TypeScript', 'Vala',
'Visual Basic', 'XUL', 'ZenScript', 'ooc') 'Visual Basic', 'XUL', 'ZenScript', 'ooc', '?')
# known licenses, anything outside of this will result in a warning during a maintenance operation # known licenses, anything outside of this will result in a warning during a maintenance operation
# only these will be used when gathering statistics # only these will be used when gathering statistics
@ -73,7 +73,7 @@ known_licenses = (
'Boost-1.0', 'CC-BY-NC-3.0', 'CC-BY-NC-SA-2.0', 'CC-BY-NC-SA-3.0', 'CC-BY-SA-3.0', 'CC-BY-NC-SA-4.0', 'Boost-1.0', 'CC-BY-NC-3.0', 'CC-BY-NC-SA-2.0', 'CC-BY-NC-SA-3.0', 'CC-BY-SA-3.0', 'CC-BY-NC-SA-4.0',
'CC-BY-SA-4.0', 'CC0', 'Custom', 'EPL-2.0', 'GPL-2.0', 'GPL-3.0', 'IJG', 'ISC', 'Java Research License', 'LGPL-2.0', 'CC-BY-SA-4.0', 'CC0', 'Custom', 'EPL-2.0', 'GPL-2.0', 'GPL-3.0', 'IJG', 'ISC', 'Java Research License', 'LGPL-2.0',
'LGPL-2.1', 'LGPL-3.0', 'MAME', 'MIT', 'MPL-1.1', 'MPL-2.0', 'MS-PL', 'MS-RL', 'NetHack General Public License', 'LGPL-2.1', 'LGPL-3.0', 'MAME', 'MIT', 'MPL-1.1', 'MPL-2.0', 'MS-PL', 'MS-RL', 'NetHack General Public License',
'None', 'Proprietary', 'Public domain', 'SWIG license', 'Unlicense', 'WTFPL', 'wxWindows license', 'zlib') 'None', 'Proprietary', 'Public domain', 'SWIG license', 'Unlicense', 'WTFPL', 'wxWindows license', 'zlib', '?')
# valid multiplayer modes (can be combined with "+" ) # valid multiplayer modes (can be combined with "+" )
valid_multiplayer_modes = ( valid_multiplayer_modes = (

View File

@ -15,17 +15,6 @@ def name_similarity(a, b):
return SequenceMatcher(None, str.casefold(a), str.casefold(b)).ratio() return SequenceMatcher(None, str.casefold(a), str.casefold(b)).ratio()
def split_infos(infos):
"""
Split into games, tools, frameworks, libraries
"""
games = [x for x in infos if not any([y in x['keywords'] for y in ('tool', 'framework', 'library')])]
tools = [x for x in infos if 'tool' in x['keywords']]
frameworks = [x for x in infos if 'framework' in x['keywords']]
libraries = [x for x in infos if 'library' in x['keywords']]
return games, tools, frameworks, libraries
def entry_iterator(): def entry_iterator():
""" """
@ -63,235 +52,6 @@ def canonical_entry_name(name):
return name return name
def parse_entry(content):
"""
Returns a dictionary of the features of the content.
Raises errors when a major error in the structure is expected, prints a warning for minor errors.
"""
info = {}
# read name
regex = re.compile(r"^# (.*)") # start of content, starting with "# " and then everything until the end of line
matches = regex.findall(content)
if len(matches) != 1 or not matches[0]: # name must be there
raise RuntimeError('Name not found in entry "{}" : {}'.format(content, matches))
info['name'] = matches[0]
# read description
regex = re.compile(r"^.*\n\n_(.*)_\n") # third line from top, everything between underscores
matches = regex.findall(content)
if len(matches) != 1 or not matches[0]: # description must be there
raise RuntimeError('Description not found in entry "{}"'.format(content))
info['description'] = matches[0]
# first read all field names
regex = re.compile(r"^- (.*?): ",
re.MULTILINE) # start of each line having "- ", then everything until a colon, then ": "
fields = regex.findall(content)
# check that essential fields are there
for field in essential_fields:
if field not in fields: # essential fields must be there
raise RuntimeError('Essential field "{}" missing in entry "{}"'.format(field, info['name']))
# check that all fields are valid fields and are existing in that order
index = 0
for field in fields:
while index < len(valid_fields) and field != valid_fields[index]:
index += 1
if index == len(valid_fields): # must be valid fields and must be in the right order
raise RuntimeError(
'Field "{}" in entry "{}" either misspelled or in wrong order'.format(field, info['name']))
# iterate over found fields
for field in fields:
regex = re.compile(r"- {}: (.*)".format(field))
matches = regex.findall(content)
if len(matches) != 1: # every field must be present only once
raise RuntimeError('Field "{}" in entry "{}" exist multiple times.'.format(field, info['name']))
v = matches[0]
# first store as is
info[field.lower() + '-raw'] = v
# remove parenthesis with content
v = re.sub(r'\([^)]*\)', '', v)
# split on ', '
v = v.split(', ')
# strip
v = [x.strip() for x in v]
# remove all being false (empty) that were for example just comments
v = [x for x in v if x]
# if entry is of structure <..> remove <>
v = [x[1:-1] if x[0] == '<' and x[-1] == '>' else x for x in v]
# empty fields will not be stored
if not v:
continue
# store in info
info[field.lower()] = v
# check again that essential fields made it through
for field in ('home', 'state', 'keywords', 'code language', 'code license'):
if field not in info: # essential fields must still be inside
raise RuntimeError('Essential field "{}" empty in entry "{}"'.format(field, info['name']))
# now checks on the content of fields
# name and description should not have spaces at the begin or end
for field in ('name', 'description'):
v = info[field]
if len(v) != len(v.strip()): # warning about that
print('Warning: No leading or trailing spaces in field {} in entry "{}"'.format(field, info['name']))
# state (essential field) must contain either beta or mature but not both, but at least one
v = info['state']
for t in v:
if t != 'beta' and t != 'mature' and not t.startswith('inactive since '):
raise RuntimeError('Unknown state tage "{}" in entry "{}"'.format(t, info['name']))
if 'beta' in v != 'mature' in v:
raise RuntimeError('State must be one of <"beta", "mature"> in entry "{}"'.format(info['name']))
# extract inactive year
phrase = 'inactive since '
inactive_year = [x[len(phrase):] for x in v if x.startswith(phrase)]
assert len(inactive_year) <= 1
if inactive_year:
info['inactive'] = inactive_year[0]
# urls in home, download, play and code repositories must start with http or https (or git) and should not contain spaces
for field in ['home', 'download', 'play', 'code repository']:
if field in info:
for url in info[field]:
if not any(
[url.startswith(x) for x in ['http://', 'https://', 'git://', 'svn://', 'ftp://', 'bzr://']]):
raise RuntimeError(
'URL "{}" in entry "{}" does not start with http/https/git/svn/ftp/bzr'.format(url,
info['name']))
if ' ' in url:
raise RuntimeError('URL "{}" in entry "{}" contains a space'.format(url, info['name']))
# github/gitlab repositories should end on .git and should start with https
if 'code repository' in info:
for repo in info['code repository']:
if any((x in repo for x in ('github', 'gitlab', 'git.tuxfamily', 'git.savannah'))):
if not repo.startswith('https://'):
print('Warning: Repo {} in entry "{}" should start with https://'.format(repo, info['name']))
if not repo.endswith('.git'):
print('Warning: Repo {} in entry "{}" should end on .git.'.format(repo, info['name']))
# check that all platform tags are valid tags and are existing in that order
if 'platform' in info:
index = 0
for platform in info['platform']:
while index < len(valid_platforms) and platform != valid_platforms[index]:
index += 1
if index == len(valid_platforms): # must be valid platforms and must be in that order
raise RuntimeError(
'Platform tag "{}" in entry "{}" either misspelled or in wrong order'.format(platform,
info['name']))
# there must be at least one keyword
if 'keywords' not in info:
raise RuntimeError('Need at least one keyword in entry "{}"'.format(info['name']))
# check for existence of at least one recommended keywords
fail = True
for recommended_keyword in recommended_keywords:
if recommended_keyword in info['keywords']:
fail = False
break
if fail: # must be at least one recommended keyword
raise RuntimeError('Entry "{}" contains no recommended keyword'.format(info['name']))
# languages should be known
languages = info['code language']
for language in languages:
if language not in known_languages:
print('Warning: Language {} in entry "{}" is not a known language. Misspelled or new?'.format(language,
info['name']))
# licenses should be known
licenses = info['code license']
for license in licenses:
if license not in known_licenses:
print('Warning: License {} in entry "{}" is not a known license. Misspelled or new?'.format(license,
info['name']))
return info
def assemble_infos():
"""
Parses all entries and assembles interesting infos about them.
"""
print('assemble game infos')
# a database of all important infos about the entries
infos = []
# iterate over all entries
for entry, _, content in entry_iterator():
# parse entry
info = parse_entry(content)
# add file information
info['file'] = entry
# check canonical file name
canonical_file_name = canonical_entry_name(info['name']) + '.md'
# we also allow -X with X =2..9 as possible extension (because of duplicate canonical file names)
if canonical_file_name != entry and canonical_file_name != entry[:-5] + '.md':
print('Warning: file {} should be {}'.format(entry, canonical_file_name))
source_file = os.path.join(entries_path, entry)
target_file = os.path.join(entries_path, canonical_file_name)
if not os.path.isfile(target_file):
pass
# os.rename(source_file, target_file)
# add to list
infos.append(info)
return infos
def extract_links():
"""
Parses all entries and extracts http(s) links from them
"""
# regex for finding urls (can be in <> or in ]() or after a whitespace
regex = re.compile(r"[\s\n]<(http.+?)>|]\((http.+?)\)|[\s\n](http[^\s\n,]+?)[\s\n,]")
# iterate over all entries
urls = set()
for _, _, content in entry_iterator():
# apply regex
matches = regex.findall(content)
# for each match
for match in matches:
# for each possible clause
for url in match:
# if there was something (and not a sourceforge git url)
if url:
urls.add(url)
urls = sorted(list(urls), key=str.casefold)
return urls
def read_developers(): def read_developers():
""" """
@ -564,11 +324,53 @@ def check_and_process_entry(entry):
if not any(value.startswith(x) for x in valid_url_prefixes): if not any(value.startswith(x) for x in valid_url_prefixes):
message += 'URL "{}" in field "{}" does not start with a valid prefix'.format(value, field) message += 'URL "{}" in field "{}" does not start with a valid prefix'.format(value, field)
# github/gitlab repositories should end on .git and should start with https
for repo in entry['Code repository']:
if any(repo.startswith(x) for x in ('@', '?')):
continue
repo = repo.value.split(' ')[0].strip()
if any((x in repo for x in ('github', 'gitlab', 'git.tuxfamily', 'git.savannah'))):
if not repo.startswith('https://'):
message += 'Repo "{}" should start with https://'.format(repo)
if not repo.endswith('.git'):
message += 'Repo "{}" should end on .git.'.format(repo)
# check that all platform tags are valid tags and are existing in that order
if 'Platform' in entry:
index = 0
for platform in entry['Platform']:
while index < len(valid_platforms) and platform != valid_platforms[index]:
index += 1
if index == len(valid_platforms): # must be valid platforms and must be in that order
message += 'Platform tag "{}" either misspelled or in wrong order'.format(platform)
# there must be at least one keyword
if not entry['Keywords']:
message += 'Need at least one keyword'
# check for existence of at least one recommended keywords
keywords = entry['Keywords']
if not any(keyword in keywords for keyword in recommended_keywords):
message += 'Entry contains no recommended keywords'
# languages should be known
languages = entry['Code language']
for language in languages:
if language not in known_languages:
message += 'Language "{}" is not a known code language. Misspelled or new?'.format(language)
# licenses should be known
licenses = entry['Code license']
for license in licenses:
if license not in known_licenses:
message += 'License "{}" is not a known license. Misspelled or new?'.format(license)
if message: if message:
raise RuntimeError(message) raise RuntimeError(message)
return entry return entry
def extract_inactive_year(entry): def extract_inactive_year(entry):
state = entry['State'] state = entry['State']
phrase = 'inactive since ' phrase = 'inactive since '
@ -590,6 +392,7 @@ def write_entries(entries):
for entry in entries: for entry in entries:
write_entry(entry) write_entry(entry)
def write_entry(entry): def write_entry(entry):
""" """
@ -618,6 +421,18 @@ def create_entry_content(entry):
# title # title
content = '# {}\n\n'.format(entry['Title']) content = '# {}\n\n'.format(entry['Title'])
# we automatically sort some fields
sort_fun = lambda x: str.casefold(x.value)
for field in ('Media', 'Inspirations', 'Code Language'):
if field in entry:
values = entry[field]
entry[field] = sorted(values, key=sort_fun)
# we also sort keywords, but first the recommend ones and then other ones
keywords = entry['Keywords']
a = [x for x in keywords if x in recommended_keywords]
b = [x for x in keywords if x not in recommended_keywords]
entry['Keywords'] = sorted(a, key=sort_fun) + sorted(b, key=sort_fun)
# now properties in the recommended order # now properties in the recommended order
for field in valid_properties: for field in valid_properties:
if field in entry: if field in entry:

View File

@ -1,7 +1,7 @@
# 0 A.D. # 0 A.D.
- Home: https://play0ad.com/, https://sourceforge.net/projects/zero-ad/ - Home: https://play0ad.com/, https://sourceforge.net/projects/zero-ad/
- Media: <https://en.wikipedia.org/wiki/0_A.D._(video_game)> - Media: https://en.wikipedia.org/wiki/0_A.D._(video_game)
- Inspirations: Age of Empires - Inspirations: Age of Empires
- State: beta - State: beta
- Download: https://play0ad.com/download/ - Download: https://play0ad.com/download/

View File

@ -5,7 +5,7 @@
- State: mature - State: mature
- Download: https://gitlab.com/KilgoreTroutMaskReplicant/1oom/-/tags - Download: https://gitlab.com/KilgoreTroutMaskReplicant/1oom/-/tags
- Platform: Windows, Linux - Platform: Windows, Linux
- Keywords: strategy, commercial content, engine recreation, remake - Keywords: remake, strategy, commercial content, engine recreation
- Code repository: https://gitlab.com/KilgoreTroutMaskReplicant/1oom.git - Code repository: https://gitlab.com/KilgoreTroutMaskReplicant/1oom.git
- Code language: C - Code language: C
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -4,7 +4,7 @@
- Inspirations: Runescape Classic - Inspirations: Runescape Classic
- State: mature - State: mature
- Download: https://github.com/2006rebotted/2006rebotted/releases - Download: https://github.com/2006rebotted/2006rebotted/releases
- Keywords: role playing, commercial content, multiplayer online + co-op, remake - Keywords: remake, role playing, commercial content, multiplayer online + co-op
- Code repository: https://github.com/2006rebotted/2006rebotted.git - Code repository: https://github.com/2006rebotted/2006rebotted.git
- Code language: Java - Code language: Java
- Code license: 2-clause BSD - Code license: 2-clause BSD

View File

@ -1,6 +1,6 @@
# 2048 # 2048
- Home: https://play2048.co/, <https://en.wikipedia.org/wiki/2048_(video_game)> - Home: https://play2048.co/, https://en.wikipedia.org/wiki/2048_(video_game)
- State: mature - State: mature
- Play: https://play2048.co/ - Play: https://play2048.co/
- Platform: Web - Platform: Web

View File

@ -4,7 +4,7 @@
- State: mature - State: mature
- Download: https://github.com/jkroepke/2Moons/releases - Download: https://github.com/jkroepke/2Moons/releases
- Platform: Web - Platform: Web
- Keywords: simulation, framework, space, strategy - Keywords: framework, simulation, strategy, space
- Code repository: https://github.com/jkroepke/2Moons.git (archived), https://github.com/steemnova/steemnova.git @add - Code repository: https://github.com/jkroepke/2Moons.git (archived), https://github.com/steemnova/steemnova.git @add
- Code language: PHP, JavaScript - Code language: PHP, JavaScript
- Code license: MIT - Code license: MIT

View File

@ -2,7 +2,7 @@
- Home: https://packages.debian.org/sid/3dchess, http://www.ibiblio.org/pub/Linux/games/strategy/3Dc-0.8.1.tar.gz - Home: https://packages.debian.org/sid/3dchess, http://www.ibiblio.org/pub/Linux/games/strategy/3Dc-0.8.1.tar.gz
- State: mature, inactive since 2000 - State: mature, inactive since 2000
- Keywords: puzzle, board, chess, open content - Keywords: board, puzzle, chess, open content
- Code repository: @see-home - Code repository: @see-home
- Code language: C - Code language: C
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -2,7 +2,7 @@
- Home: https://packages.debian.org/sid/acm, https://web.archive.org/web/20130114223737/http://www.websimulations.com/ - Home: https://packages.debian.org/sid/acm, https://web.archive.org/web/20130114223737/http://www.websimulations.com/
- State: mature, inactive since 2000 - State: mature, inactive since 2000
- Keywords: action, flight, open content, simulation - Keywords: action, simulation, flight, open content
- Code repository: @see-home - Code repository: @see-home
- Code language: C - Code language: C
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -5,7 +5,7 @@
- State: mature, inactive since 2012 - State: mature, inactive since 2012
- Download: http://perso.b2b2c.ca/~sarrazip/dev/afternoonstalker.html#download - Download: http://perso.b2b2c.ca/~sarrazip/dev/afternoonstalker.html#download
- Platform: Linux - Platform: Linux
- Keywords: action, clone, remake - Keywords: action, remake, clone
- Code repository: @see-download - Code repository: @see-download
- Code language: C++ - Code language: C++
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -1,7 +1,7 @@
# Alimer # Alimer
- Home: https://github.com/amerkoleci/alimer - Home: https://github.com/amerkoleci/alimer
- Inspirations: Urho3D, OGRE - Inspirations: OGRE, Urho3D
- State: beta - State: beta
- Keywords: game engine, 2D, 3D - Keywords: game engine, 2D, 3D
- Code repository: https://github.com/amerkoleci/alimer.git - Code repository: https://github.com/amerkoleci/alimer.git

View File

@ -1,7 +1,7 @@
# alive # alive
- Home: https://github.com/paulsapps/alive - Home: https://github.com/paulsapps/alive
- Inspirations: Oddworld: Abe's Oddysee, Oddworld: Abe's Exoddus - Inspirations: Oddworld: Abe's Exoddus, Oddworld: Abe's Oddysee
- State: beta - State: beta
- Platform: Windows, Linux - Platform: Windows, Linux
- Keywords: action, remake - Keywords: action, remake

View File

@ -1,7 +1,7 @@
# Allegro # Allegro
- Home: https://liballeg.org/ - Home: https://liballeg.org/
- Media: <https://en.wikipedia.org/wiki/Allegro_(software)> - Media: https://en.wikipedia.org/wiki/Allegro_(software)
- State: mature - State: mature
- Download: https://liballeg.org/download.html - Download: https://liballeg.org/download.html
- Keywords: framework - Keywords: framework

View File

@ -3,7 +3,7 @@
- Home: http://www.allureofthestars.com/ - Home: http://www.allureofthestars.com/
- State: beta - State: beta
- Play: http://www.allureofthestars.com/play/ - Play: http://www.allureofthestars.com/play/
- Keywords: role playing, open content, roguelike, strategy, turn-based - Keywords: role playing, strategy, open content, roguelike, turn-based
- Code repository: https://github.com/AllureOfTheStars/Allure.git - Code repository: https://github.com/AllureOfTheStars/Allure.git
- Code language: Haskell - Code language: Haskell
- Code license: AGPL-3.0 - Code license: AGPL-3.0

View File

@ -1,7 +1,7 @@
# Angband # Angband
- Home: http://rephial.org/ - Home: http://rephial.org/
- Media: <https://en.wikipedia.org/wiki/Angband_(video_game)> - Media: https://en.wikipedia.org/wiki/Angband_(video_game)
- State: mature - State: mature
- Download: http://rephial.org/release/ - Download: http://rephial.org/release/
- Keywords: role playing, roguelike - Keywords: role playing, roguelike

View File

@ -4,7 +4,7 @@
- Inspirations: Ares - Inspirations: Ares
- State: beta - State: beta
- Download: @see-home - Download: @see-home
- Keywords: strategy, real time, remake, shooter - Keywords: remake, strategy, real time, shooter
- Code repository: https://github.com/arescentral/antares.git - Code repository: https://github.com/arescentral/antares.git
- Code language: C++ - Code language: C++
- Code license: LGPL-3.0 - Code license: LGPL-3.0

View File

@ -4,7 +4,7 @@
- Inspirations: Armor Alley - Inspirations: Armor Alley
- State: beta - State: beta
- Platform: Web - Platform: Web
- Keywords: action, shooter, content open + non-commercial, remake, strategy - Keywords: action, remake, strategy, content open + non-commercial, shooter
- Code repository: https://github.com/scottschiller/ArmorAlley.git - Code repository: https://github.com/scottschiller/ArmorAlley.git
- Code language: JavaScript - Code language: JavaScript
- Code license: CC-BY-NC-3.0 (https://github.com/scottschiller/ArmorAlley/blob/master/LICENSE.txt) - Code license: CC-BY-NC-3.0 (https://github.com/scottschiller/ArmorAlley/blob/master/LICENSE.txt)

View File

@ -5,7 +5,7 @@
- Inspirations: Arx Fatalis - Inspirations: Arx Fatalis
- State: mature - State: mature
- Download: https://wiki.arx-libertatis.org/Download - Download: https://wiki.arx-libertatis.org/Download
- Keywords: role playing, commercial content, remake, requires original content (Arx Fatalis) - Keywords: remake, role playing, commercial content, requires original content (Arx Fatalis)
- Code repository: https://github.com/arx/ArxLibertatis.git - Code repository: https://github.com/arx/ArxLibertatis.git
- Code language: C++ - Code language: C++
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -5,7 +5,7 @@
- State: mature, inactive since 2016 - State: mature, inactive since 2016
- Download: https://sourceforge.net/projects/atanks/files/ - Download: https://sourceforge.net/projects/atanks/files/
- Platform: Windows, Linux - Platform: Windows, Linux
- Keywords: action, artillery, open content, remake - Keywords: action, remake, artillery, open content
- Code repository: https://git.code.sf.net/p/atanks/atanks, https://gitlab.com/osgames/atanks.git @add - Code repository: https://git.code.sf.net/p/atanks/atanks, https://gitlab.com/osgames/atanks.git @add
- Code language: C++ - Code language: C++
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -4,7 +4,7 @@
- Inspirations: Atomix - Inspirations: Atomix
- State: mature, inactive since 2015 - State: mature, inactive since 2015
- Download: https://sourceforge.net/projects/atomiks/files - Download: https://sourceforge.net/projects/atomiks/files
- Keywords: puzzle, commercial content, remake - Keywords: puzzle, remake, commercial content
- Code repository: https://gitlab.com/osgames/atomiks.git (backup of svn), https://svn.code.sf.net/p/atomiks/code (svn) - Code repository: https://gitlab.com/osgames/atomiks.git (backup of svn), https://svn.code.sf.net/p/atomiks/code (svn)
- Code language: C - Code language: C
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -4,8 +4,8 @@
- Media: https://en.wikipedia.org/wiki/Ballerburg - Media: https://en.wikipedia.org/wiki/Ballerburg
- Inspirations: Ballerburg - Inspirations: Ballerburg
- State: mature - State: mature
- Keywords: action, artillery, remake - Keywords: action, remake, artillery
- Code repository: https://git.tuxfamily.org/baller/baller.git, https://gitlab.com/osgames/ballerburg.git (@add, import of original source downloads) - Code repository: https://git.tuxfamily.org/baller/baller.git, https://gitlab.com/osgames/ballerburg.git @add (import of original source downloads)
- Code language: C - Code language: C
- Code license: GPL-3.0 - Code license: GPL-3.0
- Code dependencies: SDL2 - Code dependencies: SDL2

View File

@ -3,7 +3,7 @@
- Home: http://www.baronygame.com/ - Home: http://www.baronygame.com/
- Inspirations: Barony - Inspirations: Barony
- State: mature - State: mature
- Keywords: role playing, commercial content, multiplayer co-op + online + LAN, remake, roguelike - Keywords: remake, role playing, commercial content, multiplayer co-op + online + LAN, roguelike
- Code repository: https://github.com/TurningWheel/Barony.git - Code repository: https://github.com/TurningWheel/Barony.git
- Code language: C++ - Code language: C++
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -3,7 +3,7 @@
- Home: https://aos.party/jenkins/job/BetterSpades/ - Home: https://aos.party/jenkins/job/BetterSpades/
- Inspirations: Ace of Spades - Inspirations: Ace of Spades
- State: beta - State: beta
- Keywords: cards, multiplayer online, open content, remake - Keywords: cards, remake, multiplayer online, open content
- Code repository: https://github.com/xtreme8000/BetterSpades.git - Code repository: https://github.com/xtreme8000/BetterSpades.git
- Code language: C - Code language: C
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -4,7 +4,7 @@
- State: beta, inactive since 2012 - State: beta, inactive since 2012
- Download: http://www.nongnu.org/billiards/#downloads, http://download.savannah.nongnu.org/releases/billiards/ - Download: http://www.nongnu.org/billiards/#downloads, http://download.savannah.nongnu.org/releases/billiards/
- Platform: Linux - Platform: Linux
- Keywords: sports, simulation - Keywords: simulation, sports
- Code repository: https://gitlab.com/osgames/billiards.git (import of cvs), http://cvs.savannah.nongnu.org:/sources/billiards (cvs) - Code repository: https://gitlab.com/osgames/billiards.git (import of cvs), http://cvs.savannah.nongnu.org:/sources/billiards (cvs)
- Code language: Lua, Objective-C - Code language: Lua, Objective-C
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -3,7 +3,7 @@
- Home: https://boardgame.io/ - Home: https://boardgame.io/
- State: beta - State: beta
- Platform: Web - Platform: Web
- Keywords: strategy, game engine, turn-based - Keywords: game engine, strategy, turn-based
- Code repository: https://github.com/boardgameio/boardgame.io.git - Code repository: https://github.com/boardgameio/boardgame.io.git
- Code language: JavaScript, TypeScript - Code language: JavaScript, TypeScript
- Code license: MIT - Code license: MIT

View File

@ -3,7 +3,7 @@
- Home: https://gitlab.com/drummyfish/ - Home: https://gitlab.com/drummyfish/
- Inspirations: Atomic Bomberman - Inspirations: Atomic Bomberman
- State: mature - State: mature
- Keywords: action, open content, remake - Keywords: action, remake, open content
- Code repository: https://gitlab.com/drummyfish/Bombman.git - Code repository: https://gitlab.com/drummyfish/Bombman.git
- Code language: Python - Code language: Python
- Code license: CC0 - Code license: CC0

View File

@ -1,7 +1,7 @@
# Boost (C++ Libraries) # Boost (C++ Libraries)
- Home: https://www.boost.org/ - Home: https://www.boost.org/
- Media: <https://en.wikipedia.org/wiki/Boost_(C%2B%2B_libraries)> - Media: https://en.wikipedia.org/wiki/Boost_(C%2B%2B_libraries)
- State: mature - State: mature
- Download: https://www.boost.org/users/download/ - Download: https://www.boost.org/users/download/
- Keywords: library - Keywords: library

View File

@ -6,7 +6,7 @@
- Keywords: role playing, roguelike - Keywords: role playing, roguelike
- Code repository: https://github.com/tsadok/brogue.git - Code repository: https://github.com/tsadok/brogue.git
- Code language: C - Code language: C
- Code license: AGPL - Code license: AGPL-3.0
Traditional roguelike game inspired from the original Rogue. Your quest is to find the Amulet of Yendor. Traditional roguelike game inspired from the original Rogue. Your quest is to find the Amulet of Yendor.

View File

@ -5,7 +5,7 @@
- State: mature - State: mature
- Download: https://github.com/bibendovsky/bstone/releases - Download: https://github.com/bibendovsky/bstone/releases
- Platform: Windows - Platform: Windows
- Keywords: role playing, remake - Keywords: remake, role playing
- Code repository: https://github.com/bibendovsky/bstone.git - Code repository: https://github.com/bibendovsky/bstone.git
- Code language: C++ - Code language: C++
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -3,7 +3,7 @@
- Home: http://identicalsoftware.com/btbuilder/ - Home: http://identicalsoftware.com/btbuilder/
- Inspirations: Bard's Tale Contruction Set - Inspirations: Bard's Tale Contruction Set
- State: beta - State: beta
- Keywords: tool, remake - Keywords: remake, tool
- Code repository: https://github.com/dulsi/btbuilder.git - Code repository: https://github.com/dulsi/btbuilder.git
- Code language: C, C++ - Code language: C, C++
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -3,7 +3,7 @@
- Home: https://github.com/maikmerten/c64-nuclearreaction - Home: https://github.com/maikmerten/c64-nuclearreaction
- Inspirations: Nuclear Reaction - Inspirations: Nuclear Reaction
- State: mature, inactive since 2014 - State: mature, inactive since 2014
- Keywords: strategy, remake - Keywords: remake, strategy
- Code repository: https://github.com/maikmerten/c64-nuclearreaction.git - Code repository: https://github.com/maikmerten/c64-nuclearreaction.git
- Code language: C, Assembly - Code language: C, Assembly
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -4,7 +4,7 @@
- Inspirations: Cadaver - Inspirations: Cadaver
- State: beta, inactive since 2009 - State: beta, inactive since 2009
- Download: https://jotd.pagesperso-orange.fr/cadaver/bin/Cadaver-001.zip - Download: https://jotd.pagesperso-orange.fr/cadaver/bin/Cadaver-001.zip
- Keywords: action, commercial content, remake, requires original content - Keywords: action, remake, commercial content, requires original content
- Code repository: @see-download - Code repository: @see-download
- Code language: C++ - Code language: C++
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -5,7 +5,7 @@
- State: beta - State: beta
- Download: https://bitbucket.org/dalerank/caesaria/wiki/Releases - Download: https://bitbucket.org/dalerank/caesaria/wiki/Releases
- Platform: Windows, Linux, macOS - Platform: Windows, Linux, macOS
- Keywords: strategy, remake - Keywords: remake, strategy
- Code repository: https://bitbucket.org/dalerank/caesaria.git, https://github.com/dalerank/caesaria-game.git - Code repository: https://bitbucket.org/dalerank/caesaria.git, https://github.com/dalerank/caesaria-game.git
- Code language: C++, JavaScript - Code language: C++, JavaScript
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -4,7 +4,7 @@
- Inspirations: Outrun - Inspirations: Outrun
- State: beta - State: beta
- Download: https://github.com/djyt/cannonball/wiki#downloads - Download: https://github.com/djyt/cannonball/wiki#downloads
- Keywords: action, commercial content, remake - Keywords: action, remake, commercial content
- Code repository: https://github.com/djyt/cannonball.git - Code repository: https://github.com/djyt/cannonball.git
- Code language: C++ - Code language: C++
- Code license: MAME - Code license: MAME

View File

@ -4,7 +4,7 @@
- State: mature, inactive since 2010 - State: mature, inactive since 2010
- Download: https://sourceforge.net/projects/caphgame/files/ - Download: https://sourceforge.net/projects/caphgame/files/
- Platform: Windows, Linux - Platform: Windows, Linux
- Keywords: puzzle, open content, sandbox, simulation - Keywords: puzzle, simulation, open content, sandbox
- Code repository: https://git.code.sf.net/p/caphgame/code - Code repository: https://git.code.sf.net/p/caphgame/code
- Code language: C - Code language: C
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -2,7 +2,7 @@
- Home: https://web.archive.org/web/20190126033549/https://cardstories.org/ - Home: https://web.archive.org/web/20190126033549/https://cardstories.org/
- State: beta, inactive since 2012 - State: beta, inactive since 2012
- Keywords: puzzle, cards, open content - Keywords: cards, puzzle, open content
- Code repository: https://github.com/farsides/cardstories.git, https://gitorious.org/cardstories/cardstories.git (read-only) - Code repository: https://github.com/farsides/cardstories.git, https://gitorious.org/cardstories/cardstories.git (read-only)
- Code language: JavaScript, Python - Code language: JavaScript, Python
- Code license: AGPL-3.0 - Code license: AGPL-3.0

View File

@ -4,7 +4,7 @@
- Inspirations: Rampart - Inspirations: Rampart
- State: beta, inactive since 2006 - State: beta, inactive since 2006
- Download: https://sourceforge.net/projects/castle-combat/files/ - Download: https://sourceforge.net/projects/castle-combat/files/
- Keywords: strategy, remake - Keywords: remake, strategy
- Code repository: https://github.com/karlb/castle-combat.git - Code repository: https://github.com/karlb/castle-combat.git
- Code language: Python - Code language: Python
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -3,7 +3,7 @@
- Home: https://castle-engine.io/ - Home: https://castle-engine.io/
- State: mature - State: mature
- Download: @see-home - Download: @see-home
- Keywords: game engine, framework - Keywords: framework, game engine
- Code repository: https://github.com/castle-engine/castle-engine.git - Code repository: https://github.com/castle-engine/castle-engine.git
- Code language: Pascal - Code language: Pascal
- Code license: LGPL-2.0 (visual editor and some other assets GPL-2.0) - Code license: LGPL-2.0 (visual editor and some other assets GPL-2.0)

View File

@ -4,7 +4,7 @@
- Inspirations: Castle of the Winds - Inspirations: Castle of the Winds
- State: beta, inactive since 2016 - State: beta, inactive since 2016
- Play: http://game.castleofthewinds.com/ - Play: http://game.castleofthewinds.com/
- Keywords: role playing, remake - Keywords: remake, role playing
- Code repository: https://github.com/mordrax/cotwmtor.git - Code repository: https://github.com/mordrax/cotwmtor.git
- Code language: JavaScript - Code language: JavaScript
- Code license: MIT - Code license: MIT

View File

@ -3,7 +3,7 @@
- Home: http://game.castleofthewinds.com/ - Home: http://game.castleofthewinds.com/
- Inspirations: Castle of the Winds - Inspirations: Castle of the Winds
- State: beta - State: beta
- Keywords: role playing, remake - Keywords: remake, role playing
- Code repository: https://github.com/mordrax/cotwelm.git - Code repository: https://github.com/mordrax/cotwelm.git
- Code language: Elm, JavaScript - Code language: Elm, JavaScript
- Code license: MIT - Code license: MIT

View File

@ -5,7 +5,7 @@
- State: mature - State: mature
- Download: https://cataclysmdda.org/releases/ - Download: https://cataclysmdda.org/releases/
- Platform: Windows, Linux, macOS - Platform: Windows, Linux, macOS
- Keywords: role playing, remake, roguelike - Keywords: remake, role playing, roguelike
- Code repository: https://github.com/CleverRaven/Cataclysm-DDA.git - Code repository: https://github.com/CleverRaven/Cataclysm-DDA.git
- Code language: C++ - Code language: C++
- Code license: CC-BY-SA-3.0 - Code license: CC-BY-SA-3.0

View File

@ -4,7 +4,7 @@
- Inspirations: Sid Meier's Colonization - Inspirations: Sid Meier's Colonization
- State: beta - State: beta
- Platform: Web - Platform: Web
- Keywords: action, commercial content, remake, requires original content, strategy - Keywords: action, remake, strategy, commercial content, requires original content
- Code repository: https://github.com/institution/cc94.git - Code repository: https://github.com/institution/cc94.git
- Code language: C++, Python - Code language: C++, Python
- Code license: AGPL-3.0 - Code license: AGPL-3.0

View File

@ -3,7 +3,7 @@
- Home: https://github.com/DataRealms/CCOSS - Home: https://github.com/DataRealms/CCOSS
- Inspirations: Cortex Command - Inspirations: Cortex Command
- State: beta - State: beta
- Keywords: strategy, commercial content, multiplayer split-screen + online + LAN, real time, remake - Keywords: remake, strategy, commercial content, multiplayer split-screen + online + LAN, real time
- Code repository: https://github.com/cortex-command-community/Cortex-Command-Community-Project-Source.git, https://github.com/DataRealms/CCOSS.git @add - Code repository: https://github.com/cortex-command-community/Cortex-Command-Community-Project-Source.git, https://github.com/DataRealms/CCOSS.git @add
- Code language: C++ - Code language: C++
- Code license: AGPL-3.0 - Code license: AGPL-3.0

View File

@ -3,7 +3,7 @@
- Home: http://cr.freewarepoint.de/ - Home: http://cr.freewarepoint.de/
- Inspirations: Nuclear Reaction - Inspirations: Nuclear Reaction
- State: mature, inactive since 2017 - State: mature, inactive since 2017
- Keywords: strategy, remake - Keywords: remake, strategy
- Code repository: https://github.com/maikmerten/chainreaction.git - Code repository: https://github.com/maikmerten/chainreaction.git
- Code language: Java - Code language: Java
- Code license: LGPL-3.0 - Code license: LGPL-3.0

View File

@ -3,7 +3,7 @@
- Home: http://yanngranjon.com/static/games/chess3D/ - Home: http://yanngranjon.com/static/games/chess3D/
- State: mature, inactive since 2016 - State: mature, inactive since 2016
- Platform: Web - Platform: Web
- Keywords: strategy, board, chess, open content - Keywords: board, strategy, chess, open content
- Code repository: https://github.com/FrenchYann/Chess3D.git - Code repository: https://github.com/FrenchYann/Chess3D.git
- Code language: JavaScript, Python - Code language: JavaScript, Python
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -3,7 +3,7 @@
- Home: https://github.com/fabiensanglard/chocolate_duke3D - Home: https://github.com/fabiensanglard/chocolate_duke3D
- Inspirations: Duke Nukem 3D - Inspirations: Duke Nukem 3D
- State: beta, inactive since 2016 - State: beta, inactive since 2016
- Keywords: action, commercial content, original content required, remake - Keywords: action, remake, commercial content, original content required
- Code repository: https://github.com/fabiensanglard/chocolate_duke3D.git - Code repository: https://github.com/fabiensanglard/chocolate_duke3D.git
- Code language: C - Code language: C
- Code license: GPL-2.0, Custom - Code license: GPL-2.0, Custom

View File

@ -7,7 +7,8 @@
- Keywords: action, shooter, top-down - Keywords: action, shooter, top-down
- Code repository: https://git.code.sf.net/p/chromium-bsu/code - Code repository: https://git.code.sf.net/p/chromium-bsu/code
- Code language: C++ - Code language: C++
- Code license: Artistic License - Code license: Artistic License-1.0 (clarified version)
- Developer: Paul Wise
Arcade-style, top-scrolling space shooter. Arcade-style, top-scrolling space shooter.

View File

@ -5,7 +5,7 @@
- State: beta - State: beta
- Download: http://chunkstories.xyz/downloads.php - Download: http://chunkstories.xyz/downloads.php
- Platform: Windows, Linux, macOS - Platform: Windows, Linux, macOS
- Keywords: simulation, game engine, sandbox, voxel - Keywords: game engine, simulation, sandbox, voxel
- Code repository: https://github.com/Hugobros3/chunkstories.git - Code repository: https://github.com/Hugobros3/chunkstories.git
- Code language: Kotlin, Java - Code language: Kotlin, Java
- Code license: LGPL-3.0 - Code license: LGPL-3.0

View File

@ -4,7 +4,7 @@
- Media: https://en.wikipedia.org/wiki/Call_to_Power_II#Source_code_release - Media: https://en.wikipedia.org/wiki/Call_to_Power_II#Source_code_release
- Inspirations: Call to Power II - Inspirations: Call to Power II
- State: mature - State: mature
- Keywords: strategy, remake, turn-based - Keywords: remake, strategy, turn-based
- Code repository: https://github.com/civctp2/civctp2.git (mirror), http://ctp2.darkdust.net/anonsvn/ (svn) - Code repository: https://github.com/civctp2/civctp2.git (mirror), http://ctp2.darkdust.net/anonsvn/ (svn)
- Code language: C, C++ - Code language: C, C++
- Code license: Custom (Activision CTP2 source EULA) - Code license: Custom (Activision CTP2 source EULA)

View File

@ -3,7 +3,7 @@
- Home: https://web.archive.org/web/20181127195119/https://www.civone.org/ - Home: https://web.archive.org/web/20181127195119/https://www.civone.org/
- Inspirations: Civilization - Inspirations: Civilization
- State: beta - State: beta
- Keywords: strategy, commercial content, remake, requires original content - Keywords: remake, strategy, commercial content, requires original content
- Code repository: https://github.com/SWY1985/CivOne.git - Code repository: https://github.com/SWY1985/CivOne.git
- Code language: C# - Code language: C#
- Code license: CC0 - Code license: CC0

View File

@ -1,7 +1,7 @@
# Classic Blades of Exile # Classic Blades of Exile
- Home: http://www.spiderwebsoftware.com/blades/opensource.html, http://spiderwebforums.ipbhost.com/forum/12-blades-of-exile/, https://github.com/calref/cboe - Home: http://www.spiderwebsoftware.com/blades/opensource.html, http://spiderwebforums.ipbhost.com/forum/12-blades-of-exile/, https://github.com/calref/cboe
- Media: <https://en.wikipedia.org/wiki/Exile_(1995_video_game_series)#Blades_of_Exile> - Media: https://en.wikipedia.org/wiki/Exile_(1995_video_game_series)#Blades_of_Exile
- State: mature - State: mature
- Keywords: role playing - Keywords: role playing
- Code repository: https://github.com/calref/cboe.git - Code repository: https://github.com/calref/cboe.git

View File

@ -6,7 +6,7 @@
- State: mature - State: mature
- Download: https://github.com/MadDeCoDeR/Classic-RBDOOM-3-BFG/releases - Download: https://github.com/MadDeCoDeR/Classic-RBDOOM-3-BFG/releases
- Platform: Windows, Linux - Platform: Windows, Linux
- Keywords: action, commercial content, first-person, game engine, remake, requires original content, shooter - Keywords: action, game engine, remake, commercial content, first-person, requires original content, shooter
- Code repository: https://github.com/MadDeCoDeR/Classic-RBDOOM-3-BFG.git - Code repository: https://github.com/MadDeCoDeR/Classic-RBDOOM-3-BFG.git
- Code language: C, C++ - Code language: C, C++
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -3,7 +3,7 @@
- Home: https://github.com/simeonpilgrim/coab, https://web.archive.org/web/20150506070020/http://code.google.com/p/coab/ - Home: https://github.com/simeonpilgrim/coab, https://web.archive.org/web/20150506070020/http://code.google.com/p/coab/
- Inspirations: Curse of the Azure Bonds - Inspirations: Curse of the Azure Bonds
- State: mature - State: mature
- Keywords: role playing, remake - Keywords: remake, role playing
- Code repository: https://github.com/simeonpilgrim/coab.git - Code repository: https://github.com/simeonpilgrim/coab.git
- Code language: C# - Code language: C#
- Code license: ? (BSD) - Code license: ? (BSD)

View File

@ -6,7 +6,7 @@
- State: mature - State: mature
- Download: https://github.com/aperture-software/colditz-escape/releases - Download: https://github.com/aperture-software/colditz-escape/releases
- Platform: Windows, Linux, macOS - Platform: Windows, Linux, macOS
- Keywords: strategy, remake - Keywords: remake, strategy
- Code repository: https://github.com/aperture-software/colditz-escape.git - Code repository: https://github.com/aperture-software/colditz-escape.git
- Code language: C - Code language: C
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -4,7 +4,7 @@
- Inspirations: Colobot - Inspirations: Colobot
- State: mature - State: mature
- Download: https://colobot.info/download-colobot-gold/ - Download: https://colobot.info/download-colobot-gold/
- Keywords: strategy, open content, programming, real time, remake - Keywords: remake, strategy, open content, programming, real time
- Code repository: https://github.com/colobot/colobot.git - Code repository: https://github.com/colobot/colobot.git
- Code language: C++ - Code language: C++
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -4,7 +4,7 @@
- Inspirations: Theme Hospital - Inspirations: Theme Hospital
- State: mature - State: mature
- Download: https://github.com/CorsixTH/CorsixTH/releases - Download: https://github.com/CorsixTH/CorsixTH/releases
- Keywords: strategy, commercial content, remake, requires original content - Keywords: remake, strategy, commercial content, requires original content
- Code repository: https://github.com/CorsixTH/CorsixTH.git - Code repository: https://github.com/CorsixTH/CorsixTH.git
- Code language: Lua, C++ - Code language: Lua, C++
- Code license: MIT - Code license: MIT

View File

@ -1,10 +1,10 @@
# Cosmo-Engine # Cosmo-Engine
- Home: https://github.com/yuv422/cosmo-engine - Home: https://github.com/yuv422/cosmo-engine
- Media: https://en.wikipedia.org/wiki/Cosmo%27s_Cosmic_Adventure, https://3drealms.com/catalog/cosmos-cosmic-adventure_37/ - Media: https://3drealms.com/catalog/cosmos-cosmic-adventure_37/, https://en.wikipedia.org/wiki/Cosmo%27s_Cosmic_Adventure
- Inspirations: Cosmo's Cosmic Adventure - Inspirations: Cosmo's Cosmic Adventure
- State: beta - State: beta
- Keywords: platform, commercial content, remake, requires original content - Keywords: platform, remake, commercial content, requires original content
- Code repository: https://github.com/yuv422/cosmo-engine.git - Code repository: https://github.com/yuv422/cosmo-engine.git
- Code language: C - Code language: C
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -3,7 +3,7 @@
- Home: http://critterding.sourceforge.net/, https://sourceforge.net/projects/critterding/ - Home: http://critterding.sourceforge.net/, https://sourceforge.net/projects/critterding/
- State: beta, inactive since 2013 - State: beta, inactive since 2013
- Download: https://sourceforge.net/projects/critterding/files/critterding/ - Download: https://sourceforge.net/projects/critterding/files/critterding/
- Keywords: simulation, evolution, open content, strategy - Keywords: simulation, strategy, evolution, open content
- Code repository: @see-download - Code repository: @see-download
- Code language: C++ - Code language: C++
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -1,7 +1,7 @@
# Crossfire # Crossfire
- Home: http://crossfire.real-time.com/, https://sourceforge.net/projects/crossfire/ - Home: http://crossfire.real-time.com/, https://sourceforge.net/projects/crossfire/
- Media: <https://en.wikipedia.org/wiki/Crossfire_(1992_video_game)> - Media: https://en.wikipedia.org/wiki/Crossfire_(1992_video_game)
- State: mature - State: mature
- Download: http://crossfire.real-time.com/download/index.html, https://sourceforge.net/projects/crossfire/files/ - Download: http://crossfire.real-time.com/download/index.html, https://sourceforge.net/projects/crossfire/files/
- Keywords: role playing, multiplayer online + massive - Keywords: role playing, multiplayer online + massive

View File

@ -4,7 +4,7 @@
- State: mature - State: mature
- Download: https://sourceforge.net/projects/xwords/files/ - Download: https://sourceforge.net/projects/xwords/files/
- Platform: Android - Platform: Android
- Keywords: role playing, board, open content - Keywords: board, role playing, open content
- Code repository: https://git.code.sf.net/p/xwords/git, https://svn.code.sf.net/p/xwords/svn (svn) - Code repository: https://git.code.sf.net/p/xwords/git, https://svn.code.sf.net/p/xwords/svn (svn)
- Code language: Java - Code language: Java
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -4,7 +4,7 @@
- Inspirations: Sid Meier's Pirates! - Inspirations: Sid Meier's Pirates!
- State: beta, inactive since 2009 - State: beta, inactive since 2009
- Download: https://sourceforge.net/projects/crownandcutlass/files/crownandcutlass/ - Download: https://sourceforge.net/projects/crownandcutlass/files/crownandcutlass/
- Keywords: strategy, remake - Keywords: remake, strategy
- Code repository: https://gitlab.com/osgames/crownandcutlass.git (backup of svn), https://svn.code.sf.net/p/crownandcutlass/code (svn) - Code repository: https://gitlab.com/osgames/crownandcutlass.git (backup of svn), https://svn.code.sf.net/p/crownandcutlass/code (svn)
- Code language: C++ - Code language: C++
- Code license: Custom (almost identical to BSD) - Code license: Custom (almost identical to BSD)

View File

@ -7,7 +7,7 @@
- Keywords: library - Keywords: library
- Code repository: @see-home - Code repository: @see-home
- Code language: C - Code language: C
- Code license: BSD - Code license: ? (BSD version?)
Terminal control library for Unix-like systems. Terminal control library for Unix-like systems.

View File

@ -5,7 +5,7 @@
- State: mature - State: mature
- Download: https://www.dfworkshop.net/projects/daggerfall-unity/live-builds/ - Download: https://www.dfworkshop.net/projects/daggerfall-unity/live-builds/
- Platform: Windows, Linux, macOS - Platform: Windows, Linux, macOS
- Keywords: role playing, remake, requires additional content - Keywords: remake, role playing, requires additional content
- Code repository: https://github.com/Interkarma/daggerfall-unity.git - Code repository: https://github.com/Interkarma/daggerfall-unity.git
- Code language: C# - Code language: C#
- Code license: MIT - Code license: MIT

View File

@ -1,7 +1,7 @@
# Daimonin # Daimonin
- Home: https://www.daimonin.org/, https://sourceforge.net/projects/daimonin/ - Home: https://www.daimonin.org/, https://sourceforge.net/projects/daimonin/
- Media: <https://en.wikipedia.org/wiki/Crossfire_(1992_video_game)#Influence_on_other_online_games> - Media: https://en.wikipedia.org/wiki/Crossfire_(1992_video_game)#Influence_on_other_online_games
- State: mature - State: mature
- Download: https://www.daimonin.org/downloads/ - Download: https://www.daimonin.org/downloads/
- Keywords: role playing, multiplayer online + massive - Keywords: role playing, multiplayer online + massive

View File

@ -4,7 +4,7 @@
- Inspirations: Silent Hunter 4 - Inspirations: Silent Hunter 4
- State: beta, inactive since 2011 - State: beta, inactive since 2011
- Download: http://dangerdeep.sourceforge.net/downloads/, https://sourceforge.net/projects/dangerdeep/files/ - Download: http://dangerdeep.sourceforge.net/downloads/, https://sourceforge.net/projects/dangerdeep/files/
- Keywords: simulation, remake - Keywords: remake, simulation
- Code repository: https://gitlab.com/osgames/dangerdeep.git (conversion and cleanup of git), https://git.code.sf.net/p/dangerdeep/git @add, https://svn.code.sf.net/p/dangerdeep/code (svn) - Code repository: https://gitlab.com/osgames/dangerdeep.git (conversion and cleanup of git), https://git.code.sf.net/p/dangerdeep/git @add, https://svn.code.sf.net/p/dangerdeep/code (svn)
- Code language: C++ - Code language: C++
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -2,10 +2,10 @@
- Home: http://www.darkdestiny.at/, http://www.thedarkdestiny.at/portalApp/#/, https://sourceforge.net/projects/darkdestiny/ - Home: http://www.darkdestiny.at/, http://www.thedarkdestiny.at/portalApp/#/, https://sourceforge.net/projects/darkdestiny/
- State: mature, inactive since 2016 - State: mature, inactive since 2016
- Keywords: strategy, multiplayer online + massive - Keywords: strategy, multiplayer online + massive, turn based
- Code repository: https://gitlab.com/osgames/darkdestiny.git (import of svn), https://svn.code.sf.net/p/darkdestiny/code (svn) - Code repository: https://gitlab.com/osgames/darkdestiny.git (import of svn), https://svn.code.sf.net/p/darkdestiny/code (svn)
- Code language: Java, JavaScript - Code language: Java, JavaScript
- Code license: GPL - Code license: ? (GPL version?)
- Assets license: Custom (artwork can be freely used for modification and sharing) - Assets license: Custom (artwork can be freely used for modification and sharing)
Turn-based online space strategy game playable in internet browsers. Turn-based online space strategy game playable in internet browsers.

View File

@ -1,6 +1,6 @@
# Decker # Decker
- Home: <https://web.archive.org/web/20110926115405/http://www10.caro.net:80/dsi/decker/>, https://sourceforge.net/projects/decker/ - Home: https://web.archive.org/web/20110926115405/http://www10.caro.net:80/dsi/decker/, https://sourceforge.net/projects/decker/
- State: beta, inactive since 2013 - State: beta, inactive since 2013
- Download: https://sourceforge.net/projects/decker/files - Download: https://sourceforge.net/projects/decker/files
- Keywords: role playing - Keywords: role playing

View File

@ -3,7 +3,7 @@
- Home: https://github.com/pistacchio/Dedalus - Home: https://github.com/pistacchio/Dedalus
- State: beta, inactive since 2018 - State: beta, inactive since 2018
- Platform: Web - Platform: Web
- Keywords: adventure, game engine, text-based, tool - Keywords: adventure, game engine, tool, text-based
- Code repository: https://github.com/pistacchio/Dedalus.git - Code repository: https://github.com/pistacchio/Dedalus.git
- Code language: JavaScript - Code language: JavaScript
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -3,7 +3,7 @@
- Home: https://github.com/Interrupt/delverengine - Home: https://github.com/Interrupt/delverengine
- Inspirations: Delver - Inspirations: Delver
- State: mature - State: mature
- Keywords: game engine, commercial content, remake - Keywords: game engine, remake, commercial content
- Code repository: https://github.com/Interrupt/delverengine.git - Code repository: https://github.com/Interrupt/delverengine.git
- Code language: Java - Code language: Java
- Code license: Custom (modified zlib) - Code license: Custom (modified zlib)

View File

@ -3,7 +3,7 @@
- Home: https://github.com/shinyquagsire23/DesktopAdventures - Home: https://github.com/shinyquagsire23/DesktopAdventures
- Inspirations: Indiana Jones and his Desktop Adventures, Star Wars: Yoda Stories - Inspirations: Indiana Jones and his Desktop Adventures, Star Wars: Yoda Stories
- State: beta - State: beta
- Keywords: game engine, commercial content, remake - Keywords: game engine, remake, commercial content
- Code repository: https://github.com/shinyquagsire23/DesktopAdventures.git - Code repository: https://github.com/shinyquagsire23/DesktopAdventures.git
- Code language: C - Code language: C
- Code license: LGPL-2.1 - Code license: LGPL-2.1

View File

@ -3,7 +3,7 @@
- Home: https://github.com/diasurgical/devilution - Home: https://github.com/diasurgical/devilution
- Inspirations: Diablo - Inspirations: Diablo
- State: mature - State: mature
- Keywords: action, commercial content, engine recreation, remake, requires original content (Diablo 1) - Keywords: action, remake, commercial content, engine recreation, requires original content (Diablo 1)
- Code repository: https://github.com/diasurgical/devilution.git - Code repository: https://github.com/diasurgical/devilution.git
- Code language: C, C++ - Code language: C, C++
- Code license: Unlicense - Code license: Unlicense

View File

@ -3,7 +3,7 @@
- Home: https://github.com/diasurgical/devilutionX, https://web.archive.org/web/20130602191141/http://iphone.keyvisuals.com/apps/doom-classic-for-iphone-source-code-available/ - Home: https://github.com/diasurgical/devilutionX, https://web.archive.org/web/20130602191141/http://iphone.keyvisuals.com/apps/doom-classic-for-iphone-source-code-available/
- Inspirations: Diablo - Inspirations: Diablo
- State: mature - State: mature
- Keywords: action, commercial content, engine recreation, remake, requires original content (Diablo 1) - Keywords: action, remake, commercial content, engine recreation, requires original content (Diablo 1)
- Code repository: https://github.com/diasurgical/devilutionX.git - Code repository: https://github.com/diasurgical/devilutionX.git
- Code language: C, C++ - Code language: C, C++
- Code license: Unlicense - Code license: Unlicense

View File

@ -3,7 +3,7 @@
- Home: https://github.com/dgengin/DGEngine/wiki - Home: https://github.com/dgengin/DGEngine/wiki
- Inspirations: Diablo - Inspirations: Diablo
- State: beta - State: beta
- Keywords: action, commercial content, remake, requires original content - Keywords: action, remake, commercial content, requires original content
- Code repository: https://github.com/dgengin/DGEngine.git - Code repository: https://github.com/dgengin/DGEngine.git
- Code language: C++ - Code language: C++
- Code license: zlib, GPL-3.0 (depending on the use mode) - Code license: zlib, GPL-3.0 (depending on the use mode)

View File

@ -5,7 +5,7 @@
- State: mature - State: mature
- Download: https://github.com/dhewm/dhewm3/releases - Download: https://github.com/dhewm/dhewm3/releases
- Platform: Windows, Linux, macOS - Platform: Windows, Linux, macOS
- Keywords: action, commercial content, remake, requires original content, shooter - Keywords: action, remake, commercial content, requires original content, shooter
- Code repository: https://github.com/dhewm/dhewm3.git - Code repository: https://github.com/dhewm/dhewm3.git
- Code language: C, C++ - Code language: C, C++
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -7,8 +7,8 @@
- Platform: Windows, Linux, macOS - Platform: Windows, Linux, macOS
- Keywords: adventure, visual novel - Keywords: adventure, visual novel
- Code repository: https://gitlab.com/osgames/digitalalovestory.git (copy of version 1.1) - Code repository: https://gitlab.com/osgames/digitalalovestory.git (copy of version 1.1)
- Code language: Ren'py - Code language: Ren'Py
- Code license: CC-BY-NC-SA-3.0 @see-home - Code license: CC-BY-NC-SA-3.0 (see home)
A computer mystery/romance set five minutes into the future of 1988. A computer mystery/romance set five minutes into the future of 1988.
See also https://loveconquersallgam.es/tagged/digital%3A-a-love-story See also https://loveconquersallgam.es/tagged/digital%3A-a-love-story

View File

@ -1,7 +1,7 @@
# Divercity # Divercity
- Home: https://team--rocket.github.io/divercity/ - Home: https://team--rocket.github.io/divercity/
- Inspirations: SimCity, micropolis - Inspirations: micropolis, SimCity
- State: beta, inactive since 2015 - State: beta, inactive since 2015
- Keywords: simulation, clone, open content - Keywords: simulation, clone, open content
- Code repository: https://github.com/Team--Rocket/divercity.git - Code repository: https://github.com/Team--Rocket/divercity.git

View File

@ -5,7 +5,7 @@
- State: mature - State: mature
- Download: http://domination.sourceforge.net/download.shtml, https://sourceforge.net/projects/domination/files/ - Download: http://domination.sourceforge.net/download.shtml, https://sourceforge.net/projects/domination/files/
- Platform: Windows, Linux, macOS, Android - Platform: Windows, Linux, macOS, Android
- Keywords: strategy, board - Keywords: board, strategy
- Code repository: https://svn.code.sf.net/p/domination/code (svn active) - Code repository: https://svn.code.sf.net/p/domination/code (svn active)
- Code language: Java - Code language: Java
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -4,7 +4,7 @@
- Inspirations: Doom, Doom II, Heretic, Hexen - Inspirations: Doom, Doom II, Heretic, Hexen
- State: mature, inactive since 2012 - State: mature, inactive since 2012
- Platform: iOS - Platform: iOS
- Keywords: action, commercial content, remake, requires original content, shooter - Keywords: action, remake, commercial content, requires original content, shooter
- Code repository: https://github.com/id-Software/DOOM-iOS.git - Code repository: https://github.com/id-Software/DOOM-iOS.git
- Code language: C++ - Code language: C++
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -4,7 +4,7 @@
- Inspirations: Doom - Inspirations: Doom
- State: mature, inactive since 2012 - State: mature, inactive since 2012
- Platform: Linux - Platform: Linux
- Keywords: action, first-person, game engine, shooter - Keywords: action, game engine, first-person, shooter
- Code repository: https://github.com/id-Software/DOOM.git - Code repository: https://github.com/id-Software/DOOM.git
- Code language: C - Code language: C
- Code license: Custom - Code license: Custom

View File

@ -5,7 +5,7 @@
- State: mature - State: mature
- Download: https://doom64ex.wordpress.com/downloads/ - Download: https://doom64ex.wordpress.com/downloads/
- Platform: Windows, macOS - Platform: Windows, macOS
- Keywords: action, commercial content, original content required, remake - Keywords: action, remake, commercial content, original content required
- Code repository: https://github.com/svkaiser/Doom64EX.git - Code repository: https://github.com/svkaiser/Doom64EX.git
- Code language: C, C++ - Code language: C, C++
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -5,7 +5,7 @@
- State: mature - State: mature
- Download: https://sourceforge.net/projects/doomlegacy/files/ - Download: https://sourceforge.net/projects/doomlegacy/files/
- Platform: Windows, Linux, macOS - Platform: Windows, Linux, macOS
- Keywords: action, commercial content, original content required, remake, shooter - Keywords: action, remake, commercial content, original content required, shooter
- Code repository: https://git.code.sf.net/p/doomlegacy/legacy2, https://git.code.sf.net/p/doomlegacy/masterserver @add, https://svn.code.sf.net/p/doomlegacy/svn (svn), http://doomlegacy.cvs.sourceforge.net (cvs) - Code repository: https://git.code.sf.net/p/doomlegacy/legacy2, https://git.code.sf.net/p/doomlegacy/masterserver @add, https://svn.code.sf.net/p/doomlegacy/svn (svn), http://doomlegacy.cvs.sourceforge.net (cvs)
- Code language: C++ - Code language: C++
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -5,7 +5,7 @@
- State: mature - State: mature
- Download: https://github.com/bradharding/doomretro/releases - Download: https://github.com/bradharding/doomretro/releases
- Platform: Windows - Platform: Windows
- Keywords: action, commercial content, remake, requires original content - Keywords: action, remake, commercial content, requires original content
- Code repository: https://github.com/bradharding/doomretro.git - Code repository: https://github.com/bradharding/doomretro.git
- Code language: C, C++ - Code language: C, C++
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -5,7 +5,7 @@
- State: mature - State: mature
- Download: https://sourceforge.net/projects/deng/files/ - Download: https://sourceforge.net/projects/deng/files/
- Platform: Windows, Linux, macOS - Platform: Windows, Linux, macOS
- Keywords: action, commercial content, remake, requires original content - Keywords: action, remake, commercial content, requires original content
- Code repository: https://github.com/skyjake/Doomsday-Engine.git, https://git.code.sf.net/p/deng/code @add - Code repository: https://github.com/skyjake/Doomsday-Engine.git, https://git.code.sf.net/p/deng/code @add
- Code language: C, C++ - Code language: C, C++
- Code license: GPL-2.0 (see source files), GPL-3.0, LGPL-3.0 (core) - Code license: GPL-2.0 (see source files), GPL-3.0, LGPL-3.0 (core)

View File

@ -5,7 +5,7 @@
- State: mature, inactive since 2013 - State: mature, inactive since 2013
- Download: https://dopewars.sourceforge.io/download.html - Download: https://dopewars.sourceforge.io/download.html
- Platform: Windows, Linux - Platform: Windows, Linux
- Keywords: simulation, remake - Keywords: remake, simulation
- Code repository: https://svn.code.sf.net/p/dopewars/code (svn) - Code repository: https://svn.code.sf.net/p/dopewars/code (svn)
- Code language: C - Code language: C
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -4,7 +4,7 @@
- Media: https://en.wikipedia.org/wiki/Doxygen - Media: https://en.wikipedia.org/wiki/Doxygen
- State: mature - State: mature
- Download: https://www.doxygen.nl/download.html - Download: https://www.doxygen.nl/download.html
- Keywords: tool, library, source documentation generator - Keywords: library, tool, source documentation generator
- Code repository: https://github.com/doxygen/doxygen.git - Code repository: https://github.com/doxygen/doxygen.git
- Code language: C++ - Code language: C++
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -3,7 +3,7 @@
- Home: https://github.com/urxp/drally - Home: https://github.com/urxp/drally
- Inspirations: Death Rally - Inspirations: Death Rally
- State: beta - State: beta
- Keywords: action, commercial content, racing, remake - Keywords: action, remake, commercial content, racing
- Code repository: https://github.com/urxp/drally.git - Code repository: https://github.com/urxp/drally.git
- Code language: Assembly, C - Code language: Assembly, C
- Code license: MIT - Code license: MIT

View File

@ -4,7 +4,7 @@
- State: beta - State: beta
- Download: https://www.dreamchess.org/downloads, https://sourceforge.net/projects/dreamchess/files/ - Download: https://www.dreamchess.org/downloads, https://sourceforge.net/projects/dreamchess/files/
- Platform: Windows, Linux, macOS - Platform: Windows, Linux, macOS
- Keywords: strategy, board, chess - Keywords: board, strategy, chess
- Code repository: https://github.com/dreamchess/dreamchess.git - Code repository: https://github.com/dreamchess/dreamchess.git
- Code language: C - Code language: C
- Code license: GPL-3.0 - Code license: GPL-3.0

View File

@ -3,7 +3,7 @@
- Home: https://dreerally.com/ - Home: https://dreerally.com/
- Inspirations: Death Rally - Inspirations: Death Rally
- State: beta - State: beta
- Keywords: game engine, commercial content, remake, requires original content - Keywords: game engine, remake, commercial content, requires original content
- Code repository: https://github.com/enriquesomolinos/DreeRally.git - Code repository: https://github.com/enriquesomolinos/DreeRally.git
- Code language: C, C++ - Code language: C, C++
- Code license: Custom (may only be used with a copy of Death Rally) - Code license: Custom (may only be used with a copy of Death Rally)

View File

@ -1,7 +1,7 @@
# DRL # DRL
- Home: https://drl.chaosforge.org/ - Home: https://drl.chaosforge.org/
- Media: <https://en.wikipedia.org/wiki/DRL_(video_game)> - Media: https://en.wikipedia.org/wiki/DRL_(video_game)
- State: mature - State: mature
- Download: https://drl.chaosforge.org/downloads - Download: https://drl.chaosforge.org/downloads
- Platform: Windows, Linux, macOS - Platform: Windows, Linux, macOS

View File

@ -5,7 +5,7 @@
- State: mature, inactive since 2016 - State: mature, inactive since 2016
- Download: https://github.com/SimonLarsen/duckmarines/releases - Download: https://github.com/SimonLarsen/duckmarines/releases
- Platform: Windows, Linux (using LÖVE), macOS - Platform: Windows, Linux (using LÖVE), macOS
- Keywords: puzzle, open content (but NC and ND), remake - Keywords: puzzle, remake, open content (but NC and ND)
- Code repository: https://github.com/SimonLarsen/duckmarines.git - Code repository: https://github.com/SimonLarsen/duckmarines.git
- Code language: Lua - Code language: Lua
- Code license: zlib - Code license: zlib

View File

@ -3,7 +3,7 @@
- Home: http://icculus.org/duke3d/ - Home: http://icculus.org/duke3d/
- Inspirations: Duke Nukem 3D - Inspirations: Duke Nukem 3D
- State: beta, inactive since 2009 - State: beta, inactive since 2009
- Keywords: action, commercial content, multiplayer LAN, remake, requires original content, shooter - Keywords: action, remake, commercial content, multiplayer LAN, requires original content, shooter
- Code repository: http://svn.icculus.org/duke3d/ (svn) - Code repository: http://svn.icculus.org/duke3d/ (svn)
- Code language: C - Code language: C
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -4,7 +4,7 @@
- Inspirations: Duke Nukem 3D - Inspirations: Duke Nukem 3D
- State: beta, inactive since 2008 - State: beta, inactive since 2008
- Download: http://www.rancidmeat.com/projects/duke3d_w32/duke3d_w32_b20_src.zip - Download: http://www.rancidmeat.com/projects/duke3d_w32/duke3d_w32_b20_src.zip
- Keywords: action, commercial content, multiplayer LAN, remake, requires original content, shooter - Keywords: action, remake, commercial content, multiplayer LAN, requires original content, shooter
- Code repository: @see-download - Code repository: @see-download
- Code language: C - Code language: C
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -4,7 +4,7 @@
- Media: https://en.wikipedia.org/wiki/Dune_II#Legacy - Media: https://en.wikipedia.org/wiki/Dune_II#Legacy
- Inspirations: Dune 2 - Inspirations: Dune 2
- State: beta - State: beta
- Keywords: strategy, real time, remake - Keywords: remake, strategy, real time
- Code repository: https://github.com/Fundynamic/dune2themaker4j.git - Code repository: https://github.com/Fundynamic/dune2themaker4j.git
- Code language: Java - Code language: Java
- Code license: MIT - Code license: MIT

View File

@ -4,7 +4,7 @@
- Inspirations: Dune 2 - Inspirations: Dune 2
- State: mature, inactive since 2014 - State: mature, inactive since 2014
- Download: https://sourceforge.net/projects/dunedynasty - Download: https://sourceforge.net/projects/dunedynasty
- Keywords: strategy, remake, requires original content (Dune 2) - Keywords: remake, strategy, requires original content (Dune 2)
- Code repository: https://git.code.sf.net/p/dunedynasty/dunedynasty, https://gitlab.com/osgames/dunedynasty.git @add - Code repository: https://git.code.sf.net/p/dunedynasty/dunedynasty, https://gitlab.com/osgames/dunedynasty.git @add
- Code language: C - Code language: C
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -4,7 +4,7 @@
- Inspirations: Dune 2 - Inspirations: Dune 2
- State: mature - State: mature
- Download: http://dunelegacy.sourceforge.net/website/downloads.html, https://sourceforge.net/projects/dunelegacy/files - Download: http://dunelegacy.sourceforge.net/website/downloads.html, https://sourceforge.net/projects/dunelegacy/files
- Keywords: strategy, remake, requires original content - Keywords: remake, strategy, requires original content
- Code repository: https://git.code.sf.net/p/dunelegacy/code - Code repository: https://git.code.sf.net/p/dunelegacy/code
- Code language: C++ - Code language: C++
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -4,7 +4,7 @@
- Inspirations: Forgotten Realms: Unlimited Adventures - Inspirations: Forgotten Realms: Unlimited Adventures
- State: mature - State: mature
- Download: https://sourceforge.net/projects/uaf/files/ - Download: https://sourceforge.net/projects/uaf/files/
- Keywords: role playing, remake - Keywords: remake, role playing
- Code repository: https://gitlab.com/osgames/uaf.git (mirror), http://uaf.cvs.sourceforge.net (cvs) - Code repository: https://gitlab.com/osgames/uaf.git (mirror), http://uaf.cvs.sourceforge.net (cvs)
- Code language: C++ - Code language: C++
- Code license: GPL-2.0 - Code license: GPL-2.0

View File

@ -1,10 +1,10 @@
# Dunnet # Dunnet
- Home: http://www.driver-aces.com/ronnie.html#dunnet - Home: http://www.driver-aces.com/ronnie.html#dunnet
- Media: <https://en.wikipedia.org/wiki/Dunnet_(video_game)> - Media: https://en.wikipedia.org/wiki/Dunnet_(video_game)
- State: mature, inactive since 1992 - State: mature, inactive since 1992
- Keywords: adventure, text-based - Keywords: adventure, text-based
- Code repository: (http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/play/dunnet.el?h=emacs-25) - Code repository: ? (http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/play/dunnet.el?h=emacs-25)
- Code language: Emacs Lisp - Code language: Emacs Lisp
- Code license: GPL-3.0 - Code license: GPL-3.0
- Developer: Ron Schnell - Developer: Ron Schnell

View File

@ -5,7 +5,7 @@
- State: mature - State: mature
- Download: https://github.com/juzzlin/DustRacing2D/releases - Download: https://github.com/juzzlin/DustRacing2D/releases
- Platform: Windows, Linux - Platform: Windows, Linux
- Keywords: sports, 2D, multiplayer split-screen, open content, racing, remake - Keywords: remake, sports, 2D, multiplayer split-screen, open content, racing
- Code repository: https://github.com/juzzlin/DustRacing2D.git - Code repository: https://github.com/juzzlin/DustRacing2D.git
- Code language: C, C++ - Code language: C, C++
- Code license: GPL-3.0 - Code license: GPL-3.0

Some files were not shown because too many files have changed in this diff Show More