rename of entries fields to get only singular field names
This commit is contained in:
parent
2d52caf518
commit
873679fcc6
@ -28,9 +28,6 @@ http://icculus.org/jugglemaster/
|
||||
http://icculus.org/pyddr/
|
||||
http://icculus.org/toby/
|
||||
http://iichantra.ru/en/
|
||||
https://github.com/armory3d/iron
|
||||
https://github.com/AxioDL/urde
|
||||
https://github.com/Gramps/GodotSteam
|
||||
http://insideastarfilledsky.net/
|
||||
http://lazerbears.wixsite.com/lazerbears/cr-editor
|
||||
http://libagar.org/agar/index.html.en
|
||||
@ -51,7 +48,6 @@ http://roguebasin.roguelikedevelopment.org/index.php?title=Main_Page
|
||||
http://sam.zoy.org/monsterz/
|
||||
http://senseis.xmp.net/?GoPlayingPrograms
|
||||
http://sio2interactive.com/
|
||||
https://github.com/EasyRPG/Editor-Qt
|
||||
http://slick.ninjacave.com/
|
||||
http://snowstorm.sourceforge.net/cgi-bin/site.cgi
|
||||
http://sol.gfxile.net/ambrose3d/index.html
|
||||
@ -208,6 +204,7 @@ https://github.com/adriengivry/Overload
|
||||
https://github.com/aloisdeniel/awesome-monogame
|
||||
https://github.com/Alzter/TuxBuilder
|
||||
https://github.com/amerkoleci/Vortice.Windows
|
||||
https://github.com/armory3d/iron
|
||||
https://github.com/arturkot/the-house-game
|
||||
https://github.com/asweigart/PythonStdioGames
|
||||
https://github.com/AtomicGameEngine/AtomicGameEngine
|
||||
@ -275,6 +272,7 @@ https://github.com/GNOME/quadrapassel
|
||||
https://github.com/godot-extended-libraries/godot-next
|
||||
https://github.com/godot-mega-man/Mega-Man-Engine
|
||||
https://github.com/godotengine/godot-design
|
||||
https://github.com/Gramps/GodotSteam
|
||||
https://github.com/grantjenks/free-python-games (check all)
|
||||
https://github.com/guillaumechereau/goxel
|
||||
https://github.com/H-uru/Plasma
|
||||
|
@ -7,29 +7,28 @@ Uses Jinja2 (see https://jinja.palletsprojects.com/en/2.11.x/)
|
||||
# TODO index.html tiles, content
|
||||
# TODO index.html image (maybe downloaded and assembled from osgameclones)
|
||||
# TODO index.html only count games
|
||||
# TODO Font awesome 5 (icons for OS, for Github, Gitlab and maybe others)
|
||||
# TODO contribute.html tiles? content
|
||||
# TODO games pages links to licenses (wikipedia)
|
||||
# TODO Font awesome 4 or others (icons for OS, for Github, Gitlab and maybe others like external link)
|
||||
# TODO contribute.html tiles? content?
|
||||
# TODO games: links to licenses (wikipedia)
|
||||
# TODO indexes: make categories bold that have a certain amount of entries!
|
||||
# TODO everywhere: style URLs (Github, Wikipedia, Internet archive, SourceForge, ...)
|
||||
# TODO developers pages links to games and more information, styles
|
||||
# TODO inspirations pages, add link to games and more information, styles
|
||||
# TODO navbar add is active
|
||||
# TODO developers: links to games and more information, styles
|
||||
# TODO inspirations: add link to games and more information, styles
|
||||
# TODO statistics page: better and more statistics with links where possible
|
||||
# TODO meaningful information (links, license, last updated with lower precision)
|
||||
# TODO singular, plural everywhere (game, entries, items)
|
||||
# TODO background and shadow for the boxes
|
||||
# TODO line breaks and spaces in html source and output
|
||||
# TODO rename fields (Home to Homepage, Inspirations to Inspiration)
|
||||
# TODO developers contact expand to links to Github, Sourceforge
|
||||
# TODO games keywords as labels (some as links)
|
||||
# TODO games links to licenses and languages
|
||||
# TODO platforms as labels and with links
|
||||
# TODO split games in libraries/tools/frameworks and real games
|
||||
# TODO developers: contact expand to links to Github, Sourceforge
|
||||
# TODO games: keywords as labels (some as links)
|
||||
# TODO games: links languages
|
||||
# TODO games: platforms as labels and with links
|
||||
# TODO split games in libraries/tools/frameworks and real games, add menu
|
||||
# TODO statistics with nice graphics (pie charts in SVG) with matplotlib, seaborn, plotly?
|
||||
# TODO statistics, get it from common statistics generator
|
||||
# TODO optimize jinja for line breaks and indention
|
||||
# TODO @notices in entries
|
||||
# TODO optimize jinja for line breaks and indention and minimal amount of spaces
|
||||
# TODO replace or remove @notices in entries (maybe different entries format)
|
||||
# TODO icons: for the main categories (devs, games, statistics, home, ...)
|
||||
# TODO SEO optimizations, google search ...
|
||||
|
||||
import os
|
||||
import shutil
|
||||
@ -49,7 +48,7 @@ inspirations_path = 'inspirations'
|
||||
developers_path = 'developers'
|
||||
|
||||
plurals = {k: k+'s' for k in ('Assets license', 'Contact', 'Code language', 'Code license', 'Developer', 'Download', 'Inspiration', 'Game', 'Home', 'Organization', 'Platform')}
|
||||
for k in ('Media', 'Play', 'Keywords'):
|
||||
for k in ('Media', 'Play', 'Keyword'):
|
||||
plurals[k] = k
|
||||
for k in ('Code repository', 'Code dependency'):
|
||||
plurals[k] = k[:-1] + 'ies'
|
||||
@ -308,10 +307,10 @@ def convert_entries(entries, inspirations, developers):
|
||||
developer_references = {developer['Name']: developer['href'] for developer in developers}
|
||||
for entry in entries:
|
||||
fields = []
|
||||
for field in ('Home', 'Inspirations', 'Media', 'Download', 'Play', 'Developer', 'Keywords'):
|
||||
for field in ('Home', 'Inspiration', 'Media', 'Download', 'Play', 'Developer', 'Keyword'):
|
||||
if field in entry:
|
||||
e = entry[field]
|
||||
if field == 'Inspirations':
|
||||
if field == 'Inspiration':
|
||||
field = 'Inspiration' # TODO this is a bug, rename in entries
|
||||
if isinstance(e[0], osg.osg_parse.ValueWithComment):
|
||||
e = [x.value for x in e]
|
||||
@ -331,12 +330,12 @@ def convert_entries(entries, inspirations, developers):
|
||||
if 'Note' in entry:
|
||||
fields.append({'entries': [{'href': '', 'name': entry['Note']}]})
|
||||
fields.append({'title': 'Technical info', 'entries': []})
|
||||
for field in ('Platform', 'Code language', 'Code license', 'Code repository', 'Code dependencies', 'Assets license'):
|
||||
for field in ('Platform', 'Code language', 'Code license', 'Code repository', 'Code dependency', 'Assets license'):
|
||||
if field in entry:
|
||||
e = entry[field]
|
||||
if not e:
|
||||
continue
|
||||
if field == 'Code dependencies':
|
||||
if field == 'Code dependency':
|
||||
field = 'Code dependency' # bug, rename field
|
||||
if isinstance(e[0], osg.osg_parse.ValueWithComment):
|
||||
e = [x.value for x in e]
|
||||
@ -386,7 +385,7 @@ def generate(entries, inspirations, developers):
|
||||
developers_by_alphabet = sort_into_categories(developers, extended_alphabet, lambda item, category: category == item['letter'])
|
||||
|
||||
genres = [keyword.capitalize() for keyword in c.recommended_keywords]
|
||||
games_by_genre = sort_into_categories(entries, genres, lambda item, category: category.lower() in item['Keywords'])
|
||||
games_by_genre = sort_into_categories(entries, genres, lambda item, category: category.lower() in item['Keyword'])
|
||||
games_by_platform = sort_into_categories(entries, c.valid_platforms, lambda item, category: category in item.get('Platform', []), 'Unspecified')
|
||||
games_by_language = sort_into_categories(entries, c.known_languages, lambda item, category: category in item['Code language'])
|
||||
|
||||
|
@ -122,8 +122,8 @@ class EntriesMaintainer:
|
||||
# get all keywords and print similar keywords
|
||||
keywords = []
|
||||
for entry in self.entries:
|
||||
keywords.extend(entry['Keywords'])
|
||||
if b'first\xe2\x80\x90person'.decode() in entry['Keywords']:
|
||||
keywords.extend(entry['Keyword'])
|
||||
if b'first\xe2\x80\x90person'.decode() in entry['Keyword']:
|
||||
print(entry['File'])
|
||||
keywords = [x.value for x in keywords]
|
||||
|
||||
@ -142,7 +142,7 @@ class EntriesMaintainer:
|
||||
# get all names of frameworks and library also using osg.code_dependencies_aliases
|
||||
valid_dependencies = list(c.general_code_dependencies_without_entry.keys())
|
||||
for entry in self.entries:
|
||||
if any((x in ('framework', 'library', 'game engine') for x in entry['Keywords'])):
|
||||
if any((x in ('framework', 'library', 'game engine') for x in entry['Keyword'])):
|
||||
name = entry['Title']
|
||||
if name in c.code_dependencies_aliases:
|
||||
valid_dependencies.extend(c.code_dependencies_aliases[name])
|
||||
@ -152,7 +152,7 @@ class EntriesMaintainer:
|
||||
# get all referenced code dependencies
|
||||
referenced_dependencies = {}
|
||||
for entry in self.entries:
|
||||
deps = entry.get('Code dependencies', [])
|
||||
deps = entry.get('Code dependency', [])
|
||||
for dependency in deps:
|
||||
dependency = dependency.value
|
||||
if dependency in referenced_dependencies:
|
||||
@ -376,10 +376,10 @@ class EntriesMaintainer:
|
||||
tocs_text = ''
|
||||
|
||||
# split into games, tools, frameworks, libraries
|
||||
games = [x for x in self.entries if not any([y in x['Keywords'] for y in ('tool', 'framework', 'library')])]
|
||||
tools = [x for x in self.entries if 'tool' in x['Keywords']]
|
||||
frameworks = [x for x in self.entries if 'framework' in x['Keywords']]
|
||||
libraries = [x for x in self.entries if 'library' in x['Keywords']]
|
||||
games = [x for x in self.entries if not any([y in x['Keyword'] for y in ('tool', 'framework', 'library')])]
|
||||
tools = [x for x in self.entries if 'tool' in x['Keyword']]
|
||||
frameworks = [x for x in self.entries if 'framework' in x['Keyword']]
|
||||
libraries = [x for x in self.entries if 'library' in x['Keyword']]
|
||||
|
||||
# create games, tools, frameworks, libraries tocs
|
||||
title = 'Games'
|
||||
@ -405,7 +405,7 @@ class EntriesMaintainer:
|
||||
# create by category
|
||||
categories_text = []
|
||||
for keyword in c.recommended_keywords:
|
||||
filtered = [x for x in self.entries if keyword in x['Keywords']]
|
||||
filtered = [x for x in self.entries if keyword in x['Keyword']]
|
||||
title = keyword.capitalize()
|
||||
name = keyword.replace(' ', '-')
|
||||
file = '_{}.md'.format(name)
|
||||
@ -506,7 +506,7 @@ class EntriesMaintainer:
|
||||
|
||||
# Keywords
|
||||
statistics += '## Keywords\n\n'
|
||||
field = 'Keywords'
|
||||
field = 'Keyword'
|
||||
|
||||
# get all keywords together
|
||||
keywords = []
|
||||
@ -556,7 +556,7 @@ class EntriesMaintainer:
|
||||
|
||||
# Code dependencies
|
||||
statistics += '## Code dependencies\n\n'
|
||||
field = 'Code dependencies'
|
||||
field = 'Code dependency'
|
||||
|
||||
# get all code dependencies together
|
||||
code_dependencies = []
|
||||
@ -653,7 +653,7 @@ class EntriesMaintainer:
|
||||
return
|
||||
|
||||
# make database out of it
|
||||
db = {'headings': ['Game', 'Description', 'Download', 'State', 'Keywords', 'Source']}
|
||||
db = {'headings': ['Game', 'Description', 'Download', 'State', 'Keyword', 'Source']}
|
||||
|
||||
entries = []
|
||||
for info in self.entries:
|
||||
@ -676,7 +676,7 @@ class EntriesMaintainer:
|
||||
'inactive since {}'.format(osg.extract_inactive_year(info)) if osg.is_inactive(info) else 'active'))
|
||||
|
||||
# keywords
|
||||
keywords = info['Keywords']
|
||||
keywords = info['Keyword']
|
||||
keywords = [x.value for x in keywords]
|
||||
entry.append(', '.join(keywords))
|
||||
|
||||
|
@ -64,7 +64,7 @@ class InspirationMaintainer:
|
||||
print('Entry "{}" listed in inspiration "{}" but this entry does not exist'.format(entry_name, inspiration_name))
|
||||
else:
|
||||
entry = x[0]
|
||||
if 'Inspirations' not in entry or inspiration_name not in entry['Inspirations']:
|
||||
if 'Inspiration' not in entry or inspiration_name not in entry['Inspiration']:
|
||||
print('Entry "{}" listed in inspiration "{}" but not listed in this entry'.format(entry_name, inspiration_name))
|
||||
print('missed inspirations checked')
|
||||
|
||||
@ -90,7 +90,7 @@ class InspirationMaintainer:
|
||||
# loop over all entries and add to inspirations of entry
|
||||
for entry in self.entries:
|
||||
entry_name = entry['Title']
|
||||
for inspiration in entry.get('Inspirations', []):
|
||||
for inspiration in entry.get('Inspiration', []):
|
||||
inspiration = inspiration.value
|
||||
if inspiration in self.inspirations:
|
||||
self.inspirations[inspiration]['Inspired entries'].append(entry_name)
|
||||
|
@ -42,12 +42,12 @@ def get_config(key):
|
||||
generic_comment_string = '[comment]: # (partly autogenerated content, edit with care, read the manual before)'
|
||||
|
||||
# these fields have to be present in each entry (in this order)
|
||||
essential_fields = ('File', 'Title', 'Home', 'State', 'Keywords', 'Code repository', 'Code language', 'Code license')
|
||||
|
||||
valid_properties = ('Home', 'Media', 'Inspirations', 'State', 'Play', 'Download', 'Platform', 'Keywords', 'Code repository', 'Code language',
|
||||
'Code license', 'Code dependencies', 'Assets license', 'Developer')
|
||||
essential_fields = ('File', 'Title', 'Home', 'State', 'Keyword', 'Code repository', 'Code language', 'Code license')
|
||||
|
||||
# only these fields can be used currently (in this order)
|
||||
valid_properties = ('Home', 'Media', 'Inspiration', 'State', 'Play', 'Download', 'Platform', 'Keyword', 'Code repository', 'Code language',
|
||||
'Code license', 'Code dependency', 'Assets license', 'Developer')
|
||||
|
||||
valid_fields = ('File', 'Title') + valid_properties + ('Note', 'Building')
|
||||
|
||||
url_fields = ('Home', 'Media', 'Play', 'Download', 'Code repository')
|
||||
@ -55,7 +55,7 @@ url_fields = ('Home', 'Media', 'Play', 'Download', 'Code repository')
|
||||
valid_url_prefixes = ('http://', 'https://', 'git://', 'svn://', 'ftp://', 'bzr://')
|
||||
extended_valid_url_prefixes = valid_url_prefixes + ('@see-', '@not-', '?')
|
||||
|
||||
valid_building_properties = ('Build system', 'Build instructions')
|
||||
valid_building_properties = ('Build system', 'Build instruction')
|
||||
valid_building_fields = valid_building_properties + ('Note',)
|
||||
|
||||
# these are the only valid platforms currently (and must be given in this order)
|
||||
|
@ -3,9 +3,9 @@ Specific functions working on the games.
|
||||
"""
|
||||
|
||||
import re
|
||||
import os
|
||||
from difflib import SequenceMatcher
|
||||
from utils import utils, osg_parse
|
||||
from utils.constants import *
|
||||
from utils import utils, osg_parse, constants as c
|
||||
|
||||
regex_sanitize_name = re.compile(r"[^A-Za-z 0-9-+]+")
|
||||
regex_sanitize_name_space_eater = re.compile(r" +")
|
||||
@ -21,11 +21,11 @@ def entry_iterator():
|
||||
"""
|
||||
|
||||
# get all entries (ignore everything starting with underscore)
|
||||
entries = os.listdir(entries_path)
|
||||
entries = os.listdir(c.entries_path)
|
||||
|
||||
# iterate over all entries
|
||||
for entry in entries:
|
||||
entry_path = os.path.join(entries_path, entry)
|
||||
entry_path = os.path.join(c.entries_path, entry)
|
||||
|
||||
# ignore directories ("tocs" for example)
|
||||
if os.path.isdir(entry_path):
|
||||
@ -57,8 +57,8 @@ def read_developers():
|
||||
|
||||
:return:
|
||||
"""
|
||||
grammar_file = os.path.join(code_path, 'grammar_listing.lark')
|
||||
developers = osg_parse.read_and_parse(developer_file, grammar_file, osg_parse.ListingTransformer)
|
||||
grammar_file = os.path.join(c.code_path, 'grammar_listing.lark')
|
||||
developers = osg_parse.read_and_parse(c.developer_file, grammar_file, osg_parse.ListingTransformer)
|
||||
|
||||
# now developers is a list of dictionaries for every entry with some properties
|
||||
|
||||
@ -72,15 +72,15 @@ def read_developers():
|
||||
# check for essential, valid fields
|
||||
for dev in developers:
|
||||
# check that essential fields are existing
|
||||
for field in essential_developer_fields:
|
||||
for field in c.essential_developer_fields:
|
||||
if field not in dev:
|
||||
raise RuntimeError('Essential field "{}" missing in developer {}'.format(field, dev['Name']))
|
||||
# check that all fields are valid fields
|
||||
for field in dev.keys():
|
||||
if field not in valid_developer_fields:
|
||||
if field not in c.valid_developer_fields:
|
||||
raise RuntimeError('Invalid field "{}" in developer {}.'.format(field, dev['Name']))
|
||||
# url fields
|
||||
for field in url_developer_fields:
|
||||
for field in c.url_developer_fields:
|
||||
if field in dev:
|
||||
content = dev[field]
|
||||
if any(not (x.startswith('http://') or x.startswith('https://')) for x in content):
|
||||
@ -101,7 +101,7 @@ def write_developers(developers):
|
||||
developers = list(developers.values())
|
||||
|
||||
# comment
|
||||
content = '{}\n'.format(generic_comment_string)
|
||||
content = '{}\n'.format(c.generic_comment_string)
|
||||
|
||||
# number of developer
|
||||
content += '# Developer [{}]\n\n'.format(len(developers))
|
||||
@ -131,7 +131,7 @@ def write_developers(developers):
|
||||
content += '\n'
|
||||
|
||||
# write
|
||||
utils.write_text(developer_file, content)
|
||||
utils.write_text(c.developer_file, content)
|
||||
|
||||
|
||||
def read_inspirations():
|
||||
@ -143,8 +143,8 @@ def read_inspirations():
|
||||
# read inspirations
|
||||
|
||||
# read and parse inspirations
|
||||
grammar_file = os.path.join(code_path, 'grammar_listing.lark')
|
||||
inspirations = osg_parse.read_and_parse(inspirations_file, grammar_file, osg_parse.ListingTransformer)
|
||||
grammar_file = os.path.join(c.code_path, 'grammar_listing.lark')
|
||||
inspirations = osg_parse.read_and_parse(c.inspirations_file, grammar_file, osg_parse.ListingTransformer)
|
||||
|
||||
# now inspirations is a list of dictionaries for every entry with some properties
|
||||
|
||||
@ -158,15 +158,15 @@ def read_inspirations():
|
||||
# check for essential, valid fields
|
||||
for inspiration in inspirations:
|
||||
# check that essential fields are existing
|
||||
for field in essential_inspiration_fields:
|
||||
for field in c.essential_inspiration_fields:
|
||||
if field not in inspiration:
|
||||
raise RuntimeError('Essential field "{}" missing in inspiration {}'.format(field, inspiration['Name']))
|
||||
# check that all fields are valid fields
|
||||
for field in inspiration.keys():
|
||||
if field not in valid_inspiration_fields:
|
||||
if field not in c.valid_inspiration_fields:
|
||||
raise RuntimeError('Invalid field "{}" in inspiration {}.'.format(field, inspiration['Name']))
|
||||
# url fields
|
||||
for field in url_inspiration_fields:
|
||||
for field in c.url_inspiration_fields:
|
||||
if field in inspiration:
|
||||
content = inspiration[field]
|
||||
if any(not (x.startswith('http://') or x.startswith('https://')) for x in content):
|
||||
@ -188,7 +188,7 @@ def write_inspirations(inspirations):
|
||||
inspirations = list(inspirations.values())
|
||||
|
||||
# comment
|
||||
content = '{}\n'.format(generic_comment_string)
|
||||
content = '{}\n'.format(c.generic_comment_string)
|
||||
|
||||
# updated number of inspirations
|
||||
content += '# Inspirations [{}]\n\n'.format(len(inspirations))
|
||||
@ -218,7 +218,7 @@ def write_inspirations(inspirations):
|
||||
content += '\n'
|
||||
|
||||
# write
|
||||
utils.write_text(inspirations_file, content)
|
||||
utils.write_text(c.inspirations_file, content)
|
||||
|
||||
|
||||
def read_entries():
|
||||
@ -227,7 +227,7 @@ def read_entries():
|
||||
"""
|
||||
|
||||
# setup parser and transformer
|
||||
grammar_file = os.path.join(code_path, 'grammar_entries.lark')
|
||||
grammar_file = os.path.join(c.code_path, 'grammar_entries.lark')
|
||||
grammar = utils.read_text(grammar_file)
|
||||
parse = osg_parse.create(grammar, osg_parse.EntryTransformer)
|
||||
|
||||
@ -267,9 +267,9 @@ def check_and_process_entry(entry):
|
||||
index = 0
|
||||
for e in entry:
|
||||
field = e[0]
|
||||
while index < len(valid_fields) and field != valid_fields[index]:
|
||||
while index < len(c.valid_fields) and field != c.valid_fields[index]:
|
||||
index += 1
|
||||
if index == len(valid_fields): # must be valid fields and must be in the right order
|
||||
if index == len(c.valid_fields): # must be valid fields and must be in the right order
|
||||
message += 'Field "{}" either misspelled or in wrong order\n'.format(field)
|
||||
|
||||
# order is fine we can convert to dictionary
|
||||
@ -281,7 +281,7 @@ def check_and_process_entry(entry):
|
||||
entry = d
|
||||
|
||||
# check for essential fields
|
||||
for field in essential_fields:
|
||||
for field in c.essential_fields:
|
||||
if field not in entry:
|
||||
message += 'Essential property "{}" missing\n'.format(field)
|
||||
|
||||
@ -296,7 +296,7 @@ def check_and_process_entry(entry):
|
||||
|
||||
# check valid fields in building TODO should also check order
|
||||
for field in building.keys():
|
||||
if field not in valid_building_fields:
|
||||
if field not in c.valid_building_fields:
|
||||
message += 'Building field "{}" invalid\n'.format(field)
|
||||
entry['Building'] = building
|
||||
|
||||
@ -316,12 +316,12 @@ def check_and_process_entry(entry):
|
||||
message += 'State must be one of <"beta", "mature">'
|
||||
|
||||
# check urls
|
||||
for field in url_fields:
|
||||
for field in c.url_fields:
|
||||
values = entry.get(field, [])
|
||||
for value in values:
|
||||
if value.value.startswith('<') and value.value.endswith('>'):
|
||||
value.value = value.value[1:-1]
|
||||
if not any(value.startswith(x) for x in extended_valid_url_prefixes):
|
||||
if not any(value.startswith(x) for x in c.extended_valid_url_prefixes):
|
||||
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
|
||||
@ -339,30 +339,30 @@ def check_and_process_entry(entry):
|
||||
if 'Platform' in entry:
|
||||
index = 0
|
||||
for platform in entry['Platform']:
|
||||
while index < len(valid_platforms) and platform != valid_platforms[index]:
|
||||
while index < len(c.valid_platforms) and platform != c.valid_platforms[index]:
|
||||
index += 1
|
||||
if index == len(valid_platforms): # must be valid platforms and must be in that order
|
||||
if index == len(c.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']:
|
||||
if not entry['Keyword']:
|
||||
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):
|
||||
keywords = entry['Keyword']
|
||||
if not any(keyword in keywords for keyword in c.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:
|
||||
if language not in c.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:
|
||||
if license not in c.known_licenses:
|
||||
message += 'License "{}" is not a known license. Misspelled or new?'.format(license)
|
||||
|
||||
if message:
|
||||
@ -370,6 +370,7 @@ def check_and_process_entry(entry):
|
||||
|
||||
return entry
|
||||
|
||||
|
||||
def is_inactive(entry):
|
||||
state = entry['State']
|
||||
phrase = 'inactive since '
|
||||
@ -386,6 +387,7 @@ def extract_inactive_year(entry):
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
def write_entries(entries):
|
||||
"""
|
||||
|
||||
@ -406,7 +408,7 @@ def write_entry(entry):
|
||||
# TODO check entry
|
||||
|
||||
# get path
|
||||
entry_path = os.path.join(entries_path, entry['File'])
|
||||
entry_path = os.path.join(c.entries_path, entry['File'])
|
||||
|
||||
# create output content
|
||||
content = create_entry_content(entry)
|
||||
@ -427,23 +429,23 @@ def create_entry_content(entry):
|
||||
|
||||
# we automatically sort some fields
|
||||
sort_fun = lambda x: str.casefold(x.value)
|
||||
for field in ('Media', 'Inspirations', 'Code Language'):
|
||||
for field in ('Media', 'Inspiration', '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)
|
||||
keywords = entry['Keyword']
|
||||
a = [x for x in keywords if x in c.recommended_keywords]
|
||||
b = [x for x in keywords if x not in c.recommended_keywords]
|
||||
entry['Keyword'] = sorted(a, key=sort_fun) + sorted(b, key=sort_fun)
|
||||
|
||||
# now properties in the recommended order
|
||||
for field in valid_properties:
|
||||
# now all properties in the recommended order
|
||||
for field in c.valid_properties:
|
||||
if field in entry:
|
||||
c = entry[field]
|
||||
c = ['"{}"'.format(x) if ',' in x else x for x in c]
|
||||
c = [str(x) for x in c]
|
||||
content += '- {}: {}\n'.format(field, ', '.join(c))
|
||||
e = entry[field]
|
||||
e = ['"{}"'.format(x) if any(y in x.value for y in (',', ' (')) else x for x in e]
|
||||
e = [str(x) for x in e]
|
||||
content += '- {}: {}\n'.format(field, ', '.join(e))
|
||||
content += '\n'
|
||||
|
||||
# if there is a note, insert it
|
||||
@ -455,15 +457,15 @@ def create_entry_content(entry):
|
||||
|
||||
# building properties if present
|
||||
has_properties = False
|
||||
for field in valid_building_properties:
|
||||
for field in c.valid_building_properties:
|
||||
if field in entry['Building']:
|
||||
if not has_properties:
|
||||
has_properties = True
|
||||
content += '\n'
|
||||
c = entry['Building'][field]
|
||||
c = ['"{}"'.format(x) if ',' in x else x for x in c]
|
||||
c = [str(x) for x in c]
|
||||
content += '- {}: {}\n'.format(field, ', '.join(c))
|
||||
e = entry['Building'][field]
|
||||
e = ['"{}"'.format(x) if ',' in x else x for x in e]
|
||||
e = [str(x) for x in e]
|
||||
content += '- {}: {}\n'.format(field, ', '.join(e))
|
||||
|
||||
# if there is a note, insert it
|
||||
if 'Note' in entry['Building']:
|
||||
@ -479,7 +481,7 @@ def is_url(str):
|
||||
:param str:
|
||||
:return:
|
||||
"""
|
||||
if any(str.startswith(x) for x in valid_url_prefixes) and not ' ' in str:
|
||||
if any(str.startswith(x) for x in c.valid_url_prefixes) and not ' ' in str:
|
||||
return True
|
||||
return False
|
||||
|
||||
@ -494,7 +496,7 @@ def all_urls(entries):
|
||||
# iterate over entries
|
||||
for entry in entries:
|
||||
file = entry['File']
|
||||
for field in url_fields: # TODO there are other fields, maybe just regex on the whole content
|
||||
for field in c.url_fields: # TODO there are other fields, maybe just regex on the whole content
|
||||
for value in entry.get(field, []):
|
||||
if value.comment:
|
||||
value = value.value + ' ' + value.comment
|
||||
|
@ -46,9 +46,9 @@
|
||||
|
||||
- Games: Maxit
|
||||
|
||||
## Amer Koleci [7]
|
||||
## Amer Koleci [2]
|
||||
|
||||
- Games: Vortice
|
||||
- Games: Alimer, Vortice
|
||||
|
||||
## Anders Svensson [1]
|
||||
|
||||
@ -91,7 +91,7 @@
|
||||
- Games: Advanced Strategic Command
|
||||
- Contact: armin906@SF
|
||||
|
||||
## Armin Rigo [18]
|
||||
## Armin Rigo [1]
|
||||
|
||||
- Games: The Bub's Brothers
|
||||
|
||||
@ -192,7 +192,7 @@
|
||||
- Games: Advanced Strategic Command
|
||||
- Contact: Ed-von-Schleck@GH
|
||||
|
||||
## Chua Kong Sian [9]
|
||||
## Chua Kong Sian [1]
|
||||
|
||||
- Games: GNU Chess
|
||||
|
||||
@ -791,7 +791,7 @@
|
||||
|
||||
- Games: Trip on the Funny Boat
|
||||
|
||||
## Kriss [8]
|
||||
## Kriss [1]
|
||||
|
||||
- Games: GameCake
|
||||
|
||||
@ -864,7 +864,7 @@
|
||||
|
||||
- Games: Tactics Squad
|
||||
|
||||
## Lukas Geyer [9]
|
||||
## Lukas Geyer [1]
|
||||
|
||||
- Games: GNU Chess
|
||||
|
||||
@ -1017,7 +1017,7 @@
|
||||
|
||||
- Games: GJID
|
||||
|
||||
## Mike Strobel [9]
|
||||
## Mike Strobel [1]
|
||||
|
||||
- Games: Supremacy
|
||||
|
||||
@ -1145,9 +1145,9 @@
|
||||
|
||||
- Games: Runfield
|
||||
|
||||
## Paul Wise [2]
|
||||
## Paul Wise [3]
|
||||
|
||||
- Games: Alex the Allegator 4, Hex-a-hop
|
||||
- Games: Alex the Allegator 4, Chromium B.S.U., Hex-a-hop
|
||||
- Contact: pabs3@SF
|
||||
|
||||
## Pedro Izecksohn [1]
|
||||
@ -1377,7 +1377,7 @@
|
||||
|
||||
- Games: Simon Tatham's Portable Puzzle Collection
|
||||
|
||||
## Simon Waters [9]
|
||||
## Simon Waters [1]
|
||||
|
||||
- Games: GNU Chess
|
||||
|
||||
@ -1443,7 +1443,7 @@
|
||||
|
||||
- Games: Blinken
|
||||
|
||||
## Stuart Cracraft [9]
|
||||
## Stuart Cracraft [1]
|
||||
|
||||
- Games: GNU Chess
|
||||
|
||||
@ -1610,7 +1610,7 @@
|
||||
|
||||
- Games: Necklace of the Eye
|
||||
|
||||
## Андрей Питько [13]
|
||||
## Андрей Питько [1]
|
||||
|
||||
- Games: Wizards Magic
|
||||
|
||||
|
@ -2,15 +2,15 @@
|
||||
|
||||
- Home: https://play0ad.com/, https://sourceforge.net/projects/zero-ad/
|
||||
- Media: https://en.wikipedia.org/wiki/0_A.D._(video_game)
|
||||
- Inspirations: Age of Empires
|
||||
- Inspiration: Age of Empires
|
||||
- State: beta
|
||||
- Download: https://play0ad.com/download/
|
||||
- Platform: Windows, Linux, macOS
|
||||
- Keywords: strategy, multiplayer online + LAN, open content, real time
|
||||
- Keyword: strategy, multiplayer online + LAN, open content, real time
|
||||
- Code repository: https://github.com/0ad/0ad.git (mirror), https://svn.wildfiregames.com/public/ps/ (svn)
|
||||
- Code language: C, C++, JavaScript
|
||||
- Code license: GPL-2.0
|
||||
- Code dependencies: libogg, libvorbis, libxml2, OpenAL, SDL2, zlib
|
||||
- Code dependency: libogg, libvorbis, libxml2, OpenAL, SDL2, zlib
|
||||
- Assets license: CC-BY-SA-3.0
|
||||
- Developer: Erik Johansson, Ben Brian, Nicolas Auvray, Philip Taylor, Lancelot de Ferrière, s0600204, Kieran Pilkington, leper, Pureon
|
||||
|
||||
@ -19,7 +19,7 @@ Engine part is called Pyrogenesis.
|
||||
## Building
|
||||
|
||||
- Build system: Custom
|
||||
- Build instructions: https://trac.wildfiregames.com/wiki/BuildInstructions
|
||||
- Build instruction: https://trac.wildfiregames.com/wiki/BuildInstructions
|
||||
|
||||
See [instructions](https://trac.wildfiregames.com/wiki/GettingStartedProgrammers)
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
# 1oom
|
||||
|
||||
- Home: https://kilgoretroutmaskreplicant.gitlab.io/plain-html/
|
||||
- Inspirations: Master of Orion
|
||||
- Inspiration: Master of Orion
|
||||
- State: mature
|
||||
- Download: https://gitlab.com/KilgoreTroutMaskReplicant/1oom/-/tags
|
||||
- Platform: Windows, Linux
|
||||
- Keywords: remake, strategy, commercial content, engine recreation
|
||||
- Keyword: remake, strategy, commercial content, engine recreation
|
||||
- Code repository: https://gitlab.com/KilgoreTroutMaskReplicant/1oom.git
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
- Code dependencies: Allegro, SDL, SDL2
|
||||
- Code dependency: Allegro, SDL, SDL2
|
||||
- Developer: Kilgore Trout Mask Replicant
|
||||
|
||||
## Building
|
||||
|
||||
- Build system: Make
|
||||
- Build instructions: https://gitlab.com/KilgoreTroutMaskReplicant/1oom/blob/master/INSTALL
|
||||
- Build instruction: https://gitlab.com/KilgoreTroutMaskReplicant/1oom/blob/master/INSTALL
|
||||
|
@ -1,10 +1,10 @@
|
||||
# 2006-rebotted
|
||||
|
||||
- Home: https://rsrebotted.com/, https://web.archive.org/web/20200211143757/http://2006rebotted.tk/
|
||||
- Inspirations: Runescape Classic
|
||||
- Inspiration: Runescape Classic
|
||||
- State: mature
|
||||
- Download: https://github.com/2006rebotted/2006rebotted/releases
|
||||
- Keywords: remake, role playing, commercial content, multiplayer online + co-op
|
||||
- Keyword: remake, role playing, commercial content, multiplayer online + co-op
|
||||
- Code repository: https://github.com/2006rebotted/2006rebotted.git
|
||||
- Code language: Java
|
||||
- Code license: 2-clause BSD
|
||||
|
@ -4,7 +4,7 @@
|
||||
- State: mature
|
||||
- Play: https://play2048.co/
|
||||
- Platform: Web
|
||||
- Keywords: puzzle, sliding blocks
|
||||
- Keyword: puzzle, sliding blocks
|
||||
- Code repository: https://github.com/gabrielecirulli/2048.git, https://github.com/tpcstld/2048.git @add
|
||||
- Code language: JavaScript
|
||||
- Code license: MIT
|
||||
|
@ -1,14 +1,14 @@
|
||||
# 2H4U
|
||||
|
||||
- Home: https://sourceforge.net/projects/toohardforyou/
|
||||
- Inspirations: Tetris
|
||||
- Inspiration: Tetris
|
||||
- State: mature, inactive since 2007
|
||||
- Download: https://sourceforge.net/projects/toohardforyou/files/
|
||||
- Keywords: puzzle, skill
|
||||
- Keyword: puzzle, skill
|
||||
- Code repository: https://svn.code.sf.net/p/toohardforyou/code (svn)
|
||||
- Code language: C++
|
||||
- Code license: GPL-2.0
|
||||
- Code dependencies: SDL
|
||||
- Code dependency: SDL
|
||||
- Developer: Piwai, Kayl
|
||||
|
||||
Mix between a Tetris-like game and a wall breaker.
|
||||
|
@ -4,7 +4,7 @@
|
||||
- State: mature
|
||||
- Download: https://github.com/jkroepke/2Moons/releases
|
||||
- Platform: Web
|
||||
- Keywords: framework, simulation, strategy, space
|
||||
- Keyword: framework, simulation, strategy, space
|
||||
- Code repository: https://github.com/jkroepke/2Moons.git (archived), https://github.com/steemnova/steemnova.git @add
|
||||
- Code language: PHP, JavaScript
|
||||
- Code license: MIT
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: http://www.newbreedsoftware.com/3dpong/
|
||||
- State: beta, inactive since 2004
|
||||
- Platform: Linux, macOS
|
||||
- Keywords: arcade, online, 3D
|
||||
- Keyword: arcade, 3D, online
|
||||
- Code repository: @see-home
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
- 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
|
||||
- Keywords: board, puzzle, chess, open content, 3D
|
||||
- Keyword: board, puzzle, 3D, chess, open content
|
||||
- Code repository: @see-home
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
- Code dependencies: libx, libxpm, xaw3dg
|
||||
- Code dependency: libx, libxpm, xaw3dg
|
||||
- Assets license: GPL-2.0
|
||||
- Developer: Paul Hicks, Bernard Kennedy
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
# 3d.city
|
||||
|
||||
- Home: http://lo-th.github.io/3d.city/index.html, https://github.com/lo-th/3d.city
|
||||
- Inspirations: SimCity, micropolis
|
||||
- Inspiration: micropolis, SimCity
|
||||
- State: mature, inactive since 2016
|
||||
- Play: http://lo-th.github.io/3d.city/index.html
|
||||
- Platform: Web
|
||||
- Keywords: simulation, clone, open content
|
||||
- Keyword: simulation, clone, open content
|
||||
- Code repository: https://github.com/lo-th/3d.city.git
|
||||
- Code language: JavaScript
|
||||
- Code license: GPL-3.0 (with additional terms)
|
||||
- Code dependencies: SEA3D, Three.js
|
||||
- Code dependency: SEA3D, Three.js
|
||||
- Developer: lo-th
|
||||
|
||||
WebGL version of micropolisJS.
|
||||
|
@ -1,14 +1,14 @@
|
||||
# 4D-TRIS
|
||||
|
||||
- Home: https://sourceforge.net/projects/dtris/
|
||||
- Inspirations: Tetris
|
||||
- Inspiration: Tetris
|
||||
- State: mature, inactive since 2012
|
||||
- Platform: Windows, Linux, macOS
|
||||
- Keywords: puzzle, clone, open content
|
||||
- Keyword: puzzle, clone, open content
|
||||
- Code repository: https://gitlab.com/osgames/dtris.git (conversion of bzr), https://code.launchpad.net/4dtris (bzr)
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
- Code dependencies: OpenGL, SDL
|
||||
- Code dependency: OpenGL, SDL
|
||||
- Developer: Simon Laszlo
|
||||
|
||||
Tetris game extended to 4 dimension.
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
- Home: http://www.urticator.net/maze/
|
||||
- State: mature, inactive since 2008
|
||||
- Keywords: puzzle, 4D, maze navigation (educational?), open content
|
||||
- Keyword: puzzle, 4D, maze navigation (educational?), open content
|
||||
- Code repository: @see-home
|
||||
- Code language: Java
|
||||
- Code license: Public domain
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
- Home: http://old.nklein.com/products/54321/
|
||||
- State: mature, inactive since 2001
|
||||
- Keywords: puzzle, open content
|
||||
- Keyword: puzzle, open content
|
||||
- Code repository: @see-home
|
||||
- Code language: C++
|
||||
- Code license: Custom (a very simple copyleft see http://old.nklein.com/etc/copyright.php)
|
||||
- Code dependencies: libpng, SDL, zlib
|
||||
- Code dependency: libpng, SDL, zlib
|
||||
- Assets license: Custom (see code license)
|
||||
- Developer: Patrick Fleckenstein
|
||||
|
||||
|
@ -3,11 +3,11 @@
|
||||
- Home: http://a7xpg.sourceforge.net/, http://www.asahi-net.or.jp/~cs8k-cyu/windows/a7xpg_e.html
|
||||
- State: beta, inactive since 2005
|
||||
- Download: https://sourceforge.net/projects/a7xpg/files/a7xpg/
|
||||
- Keywords: arcade
|
||||
- Keyword: arcade
|
||||
- Code repository: @see-home
|
||||
- Code language: D
|
||||
- Code license: 2-clause BSD
|
||||
- Code dependencies: libvorbis, SDL
|
||||
- Code dependency: libvorbis, SDL
|
||||
- Developer: Kenta Cho
|
||||
|
||||
Arcade space flier.
|
||||
|
@ -3,11 +3,11 @@
|
||||
- Home: https://sourceforge.net/projects/aplanetsrevenge/
|
||||
- State: beta, inactive since 2008
|
||||
- Download: https://sourceforge.net/projects/aplanetsrevenge/files/aplanetsrevenge/apr-1.0-alpha/
|
||||
- Keywords: strategy, text-based
|
||||
- Keyword: strategy, text-based
|
||||
- Code repository: https://gitlab.com/osgames/aplanetsrevenge.git (copy of last source release)
|
||||
- Code language: Python
|
||||
- Code license: GPL-3.0
|
||||
- Code dependencies: curses
|
||||
- Code dependency: curses
|
||||
|
||||
A text-based, turn-based strategy game set in space. It is similar to a 4X game and is inspired by Space Federation: Galactic Conquest.
|
||||
|
||||
|
@ -4,11 +4,11 @@
|
||||
- State: mature, inactive since 2005
|
||||
- Download: https://sourceforge.net/projects/abe/files/
|
||||
- Platform: Windows, Linux, macOS
|
||||
- Keywords: platform, side-scrolling
|
||||
- Keyword: platform, side-scrolling
|
||||
- Code repository: https://gitlab.com/osgames/abe.git (import of cvs), http://abe.cvs.sourceforge.net (cvs)
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
- Code dependencies: SDL
|
||||
- Code dependency: SDL
|
||||
- Developer: Gabor Torok, Pedro Izecksohn, Alex Clark
|
||||
|
||||
Side scrolling platform game.
|
||||
|
@ -1,15 +1,15 @@
|
||||
# Abuse
|
||||
|
||||
- Home: http://abuse.zoy.org/
|
||||
- Inspirations: Abuse
|
||||
- Inspiration: Abuse
|
||||
- State: mature, inactive since 2011
|
||||
- Download: http://abuse.zoy.org/wiki/download
|
||||
- Platform: Linux
|
||||
- Keywords: action, platform, remake, swappable content
|
||||
- Keyword: action, platform, remake, swappable content
|
||||
- Code repository: svn://svn.zoy.org/abuse/abuse/trunk (svn)
|
||||
- Code language: C++, Lisp
|
||||
- Code license: Public domain (parts), GPL-2.0 (parts), WTFPL (parts)
|
||||
- Code dependencies: SDL
|
||||
- Code dependency: SDL
|
||||
- Assets license: Public domain, Custom (music)
|
||||
|
||||
Dark 2D side-scrolling platform game.
|
||||
|
@ -1,11 +1,11 @@
|
||||
# Achtung, die Kurve!
|
||||
|
||||
- Home: https://kurve.se/
|
||||
- Inspirations: "Achtung, die Kurve!"
|
||||
- Inspiration: "Achtung, die Kurve!"
|
||||
- State: mature
|
||||
- Play: https://kurve.se/
|
||||
- Platform: Web
|
||||
- Keywords: action, clone, multiplayer local, open content
|
||||
- Keyword: action, clone, multiplayer local, open content
|
||||
- Code repository: https://github.com/SimonAlling/kurve.git
|
||||
- Code language: JavaScript
|
||||
- Code license: AGPL-3.0
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
- Home: https://packages.debian.org/sid/acm, https://web.archive.org/web/20130114223737/http://www.websimulations.com/
|
||||
- State: mature, inactive since 2000
|
||||
- Keywords: action, simulation, flight, open content
|
||||
- Keyword: action, simulation, flight, open content
|
||||
- Code repository: @see-home
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
|
@ -1,15 +1,15 @@
|
||||
# AdaGate
|
||||
|
||||
- Home: https://github.com/fastrgv/AdaGate
|
||||
- Inspirations: Sokoban
|
||||
- Inspiration: Sokoban
|
||||
- State: mature
|
||||
- Download: https://github.com/fastrgv/AdaGate/releases
|
||||
- Platform: Windows, Linux, macOS
|
||||
- Keywords: puzzle, 3D
|
||||
- Keyword: puzzle, 3D
|
||||
- Code repository: @see-download
|
||||
- Code language: Ada
|
||||
- Code license: GPL-3.0
|
||||
- Code dependencies: OpenGL, SDL2
|
||||
- Code dependency: OpenGL, SDL2
|
||||
|
||||
3D sokoban puzzle game within a Stargate / Portal fantasy setting.
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
- Home: https://web.archive.org/web/20180818173613/http://www.mushware.com/, https://packages.qa.debian.org/a/adanaxisgpl.html
|
||||
- State: mature, inactive since 2007
|
||||
- Keywords: action, 4D, first-person, open content, shooter, single-player, space
|
||||
- Keyword: action, 4D, first-person, open content, shooter, single-player, space
|
||||
- Code repository: @see-home
|
||||
- Code language: C++
|
||||
- Code license: GPL-2.0 (non-free file in the commercial version)
|
||||
- Code dependencies: GLUT
|
||||
- Code dependency: GLUT
|
||||
- Assets license: GPL-2.0
|
||||
- Developer: Andy Southgate
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: https://github.com/fastrgv/AdaVenture
|
||||
- State: mature
|
||||
- Download: https://github.com/fastrgv/AdaVenture/releases
|
||||
- Keywords: adventure, for kids, point&click
|
||||
- Keyword: adventure, for kids, point&click
|
||||
- Code repository: https://github.com/fastrgv/AdaVenture.git
|
||||
- Code language: Ada
|
||||
- Code license: GPL-3.0
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
- Home: http://www.asc-hq.org/, https://sourceforge.net/projects/asc-hq/
|
||||
- Media: https://en.wikipedia.org/wiki/Battle_Isle#Clones
|
||||
- Inspirations: Battle Isle series
|
||||
- Inspiration: Battle Isle series
|
||||
- State: mature
|
||||
- Keywords: strategy, clone, turn-based
|
||||
- Keyword: strategy, clone, turn-based
|
||||
- Code repository: https://github.com/ValHaris/asc-hq.git
|
||||
- Code language: C++
|
||||
- Code license: GPL-2.0
|
||||
|
@ -1,9 +1,9 @@
|
||||
# adventure engine
|
||||
|
||||
- Home: https://github.com/isovector/adventure
|
||||
- Inspirations: Moai
|
||||
- Inspiration: Moai
|
||||
- State: mature, inactive since 2013
|
||||
- Keywords: adventure, game engine
|
||||
- Keyword: adventure, game engine
|
||||
- Code repository: https://github.com/isovector/adventure.git
|
||||
- Code language: Lua
|
||||
- Code license: MIT
|
||||
|
@ -1,15 +1,15 @@
|
||||
# Afternoon Stalker
|
||||
|
||||
- Home: http://perso.b2b2c.ca/~sarrazip/dev/afternoonstalker.html
|
||||
- Inspirations: Night Stalker
|
||||
- Inspiration: Night Stalker
|
||||
- State: mature, inactive since 2012
|
||||
- Download: http://perso.b2b2c.ca/~sarrazip/dev/afternoonstalker.html#download
|
||||
- Platform: Linux
|
||||
- Keywords: action, remake, clone
|
||||
- Keyword: action, remake, clone
|
||||
- Code repository: @see-download
|
||||
- Code language: C++
|
||||
- Code license: GPL-2.0
|
||||
- Code dependencies: SDL
|
||||
- Code dependency: SDL
|
||||
|
||||
Robot-killing video game.
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
- Home: https://code.google.com/archive/p/aiwars/
|
||||
- State: beta, inactive since 2010
|
||||
- Keywords: strategy
|
||||
- Keyword: strategy
|
||||
- Code repository: https://github.com/suprafun/aiwars.git, https://code.google.com/archive/p/aiwars/source
|
||||
- Code language: Python
|
||||
- Code license: MIT
|
||||
- Code dependencies: Pillow, pygame
|
||||
- Code dependency: Pillow, pygame
|
||||
|
||||
Turn-based strategy game, an AI client development testbed.
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: http://icculus.org/airstrike/, https://packages.debian.org/stable/games/airstrike, https://web.archive.org/web/20061012090550/http://fluff.dyndns.org/cgi-bin/trac.cgi
|
||||
- State: beta, inactive since 2014
|
||||
- Platform: Windows, Linux
|
||||
- Keywords: arcade, 2D, open content
|
||||
- Keyword: arcade, 2D, open content
|
||||
- Code repository: @see-home
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
|
@ -4,7 +4,7 @@
|
||||
- State: mature
|
||||
- Download: https://github.com/GNOME/aisleriot/releases
|
||||
- Platform: Linux
|
||||
- Keywords: arcade, cards, open content
|
||||
- Keyword: arcade, cards, open content
|
||||
- Code repository: https://github.com/GNOME/aisleriot.git
|
||||
- Code language: C, Scheme
|
||||
- Code license: GPL-3.0
|
||||
|
@ -1,11 +1,11 @@
|
||||
# Ajax3d
|
||||
|
||||
- Home: http://ajax3d.sourceforge.net/, https://sourceforge.net/projects/ajax3d/
|
||||
- Inspirations: Zarch
|
||||
- Inspiration: Zarch
|
||||
- State: beta, inactive since 2007
|
||||
- Download: https://sourceforge.net/projects/ajax3d/files/ajax3d/
|
||||
- Platform: Web
|
||||
- Keywords: action, remake
|
||||
- Keyword: action, remake
|
||||
- Code repository: https://gitlab.com/osgames/ajax3d.git (conversion of cvs), http://ajax3d.cvs.sourceforge.net (cvs)
|
||||
- Code language: JavaScript
|
||||
- Code license: GPL-2.0
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Aklabeth
|
||||
|
||||
- Home: https://sourceforge.net/projects/aklabeth/
|
||||
- Inspirations: Akalabeth: World of Doom
|
||||
- Inspiration: Akalabeth: World of Doom
|
||||
- State: mature, inactive since 2004
|
||||
- Download: https://sourceforge.net/projects/aklabeth/files/aklabeth/
|
||||
- Keywords: remake
|
||||
- Keyword: remake
|
||||
- Code repository: @see-download
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
|
@ -1,11 +1,11 @@
|
||||
# Aleph One
|
||||
|
||||
- Home: https://alephone.lhowon.org/, https://github.com/Aleph-One-Marathon/alephone/wiki, https://sourceforge.net/projects/marathon/
|
||||
- Inspirations: Marathon, Marathon 2, Marathon Infinity
|
||||
- Inspiration: Marathon, Marathon 2, Marathon Infinity
|
||||
- State: mature
|
||||
- Download: https://sourceforge.net/projects/marathon/files/
|
||||
- Platform: Windows, Linux, macOS
|
||||
- Keywords: action, remake, shooter
|
||||
- Keyword: action, remake, shooter
|
||||
- Code repository: https://github.com/Aleph-One-Marathon/alephone.git, https://svn.code.sf.net/p/marathon/code (svn)
|
||||
- Code language: C++, Lua
|
||||
- Code license: GPL-3.0
|
||||
|
@ -4,11 +4,11 @@
|
||||
- State: mature, inactive since 2003
|
||||
- Download: https://sourceforge.net/projects/allegator/files/
|
||||
- Platform: Windows, Linux, macOS
|
||||
- Keywords: platform, open content
|
||||
- Keyword: platform, open content
|
||||
- Code repository: https://git.code.sf.net/p/allegator/alex4
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
- Code dependencies: Allegro
|
||||
- Code dependency: Allegro
|
||||
- Assets license: GPL-2.0
|
||||
- Developer: Johan Peitz (design source code and graphics), Anders Svensson (music and sound effects), Paul Wise
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: http://www.aatraders.com/, https://sourceforge.net/projects/aatrade/
|
||||
- State: beta, inactive since 2009
|
||||
- Download: https://sourceforge.net/projects/aatrade/files/
|
||||
- Keywords: strategy, online
|
||||
- Keyword: strategy, online
|
||||
- Code repository: https://github.com/tarnus/aatraders.git, https://gitlab.com/osgames/aatraders.git @add
|
||||
- Code language: PHP
|
||||
- Code license: GPL-2.0
|
||||
|
@ -1,12 +1,13 @@
|
||||
# Alimer
|
||||
|
||||
- Home: https://github.com/amerkoleci/alimer
|
||||
- Inspirations: OGRE, Urho3D
|
||||
- Inspiration: OGRE, Urho3D
|
||||
- State: beta
|
||||
- Keywords: game engine, 2D, 3D
|
||||
- Keyword: game engine, 2D, 3D
|
||||
- Code repository: https://github.com/amerkoleci/alimer.git
|
||||
- Code language: C++
|
||||
- Code license: MIT
|
||||
- Developer: Amer Koleci
|
||||
|
||||
Cross-platform 2D and 3D game engine.
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
# alive
|
||||
|
||||
- Home: https://github.com/paulsapps/alive
|
||||
- Inspirations: Oddworld: Abe's Exoddus, Oddworld: Abe's Oddysee
|
||||
- Inspiration: Oddworld: Abe's Exoddus, Oddworld: Abe's Oddysee
|
||||
- State: beta
|
||||
- Platform: Windows, Linux
|
||||
- Keywords: action, remake
|
||||
- Keyword: action, remake
|
||||
- Code repository: https://github.com/AliveTeam/alive_reversing.git, https://github.com/paulsapps/alive.git @add
|
||||
- Code language: C++
|
||||
- Code license: MIT
|
||||
- Code dependencies: SDL2
|
||||
- Code dependency: SDL2
|
||||
|
||||
Remake of Oddworld: Abe's Oddysee, Oddworld: Abe's Exoddus
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
- Media: https://en.wikipedia.org/wiki/Allegro_(software)
|
||||
- State: mature
|
||||
- Download: https://liballeg.org/download.html
|
||||
- Keywords: framework
|
||||
- Keyword: framework
|
||||
- Code repository: https://github.com/liballeg/allegro5.git
|
||||
- Code language: C
|
||||
- Code license: zlib
|
||||
|
@ -4,11 +4,11 @@
|
||||
- State: beta
|
||||
- Play: http://www.allureofthestars.com/play/
|
||||
- Platform: Web
|
||||
- Keywords: role playing, strategy, open content, roguelike, turn-based
|
||||
- Keyword: role playing, strategy, open content, roguelike, turn-based
|
||||
- Code repository: https://github.com/AllureOfTheStars/Allure.git
|
||||
- Code language: Haskell
|
||||
- Code license: AGPL-3.0
|
||||
- Code dependencies: LambdaHack, SDL
|
||||
- Code dependency: LambdaHack, SDL
|
||||
- Assets license: AGPL-3.0
|
||||
|
||||
Sci-Fi roguelike and tactical squad combat game.
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
- Home: https://packages.debian.org/stable/games/amphetamine, https://web.archive.org/web/20101023090423/http://homepage.hispeed.ch/loehrer/amph/amph.html
|
||||
- State: beta, inactive since 2008
|
||||
- Keywords: platform, open content
|
||||
- Keyword: platform, open content
|
||||
- Code repository: @see-home
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
- Code dependencies: SDL
|
||||
- Code dependency: SDL
|
||||
- Assets license: GPL
|
||||
- Developer: Jonas Spillmann, Lukas Löhrer, Patrick J. Naughton, Chris Laurel
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
- Home: https://web.archive.org/web/20150412072808/http://www.coralquest.com/anagramarama/
|
||||
- State: beta, inactive since 2002
|
||||
- Keywords: puzzle, open content
|
||||
- Keyword: puzzle, open content
|
||||
- Code repository: @see-home
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
|
@ -1,13 +1,13 @@
|
||||
# Ancient Beast
|
||||
|
||||
- Home: https://ancientbeast.com/
|
||||
- Inspirations: Heroes of Might and Magic III
|
||||
- Inspiration: Heroes of Might and Magic III
|
||||
- State: mature
|
||||
- Keywords: strategy, clone
|
||||
- Keyword: strategy, clone
|
||||
- Code repository: https://github.com/FreezingMoon/AncientBeast.git
|
||||
- Code language: JavaScript
|
||||
- Code license: AGPL-3.0
|
||||
- Code dependencies: Phaser
|
||||
- Code dependency: Phaser
|
||||
|
||||
Turn based strategy indie game project.
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
- State: beta
|
||||
- Download: https://f-droid.org/packages/com.gpl.rpg.AndorsTrail/
|
||||
- Platform: Android
|
||||
- Keywords: role playing
|
||||
- Keyword: role playing
|
||||
- Code repository: https://github.com/Zukero/andors-trail.git
|
||||
- Code language: Java
|
||||
- Code license: GPL-2.0
|
||||
|
@ -4,7 +4,7 @@
|
||||
- State: mature
|
||||
- Download: https://www.jwtc.nl/downloads
|
||||
- Platform: Android
|
||||
- Keywords: strategy
|
||||
- Keyword: strategy
|
||||
- Code repository: https://github.com/jcarolus/android-chess.git
|
||||
- Code language: Java, C++
|
||||
- Code license: MIT
|
||||
|
@ -4,11 +4,11 @@
|
||||
- Media: https://en.wikipedia.org/wiki/Angband_(video_game)
|
||||
- State: mature
|
||||
- Download: http://rephial.org/release/
|
||||
- Keywords: role playing, roguelike
|
||||
- Keyword: role playing, roguelike
|
||||
- Code repository: https://github.com/angband/angband.git
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
- Code dependencies: SDL
|
||||
- Code dependency: SDL
|
||||
|
||||
Single-player dungeon exploration game.
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
- Home: https://github.com/estevaofon/angry-birds-python
|
||||
- State: mature, inactive since 2017
|
||||
- Keywords: role playing, skill
|
||||
- Keyword: role playing, skill
|
||||
- Code repository: https://github.com/estevaofon/angry-birds-python.git
|
||||
- Code language: Python
|
||||
- Code license: MIT
|
||||
- Code dependencies: pygame, pymunk
|
||||
- Code dependency: pygame, pymunk
|
||||
|
||||
Angry Birds game.
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: http://annchienta.sourceforge.net/?page=home, https://sourceforge.net/projects/annchienta/
|
||||
- State: mature, inactive since 2009
|
||||
- Download: https://sourceforge.net/projects/annchienta/files/annchienta/current/
|
||||
- Keywords: framework
|
||||
- Keyword: framework
|
||||
- Code repository: https://github.com/sago007/annchienta.git, https://svn.code.sf.net/p/annchienta/code (svn)
|
||||
- Code language: C++
|
||||
- Code license: GPL-3.0
|
||||
|
@ -4,11 +4,11 @@
|
||||
- State: mature, inactive since 2014
|
||||
- Download: http://annexconquer.com/downloads/
|
||||
- Platform: Windows, Linux
|
||||
- Keywords: strategy, open content, real time
|
||||
- Keyword: strategy, open content, real time
|
||||
- Code repository: https://bitbucket.org/annexctw/annex.git
|
||||
- Code language: MegaGlest Script (?)
|
||||
- Code license: GPL-3.0
|
||||
- Code dependencies: MegaGlest Engine
|
||||
- Code dependency: MegaGlest Engine
|
||||
- Assets license: CC-BY-SA
|
||||
- Developer: DelphaDesign
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
# Antares
|
||||
|
||||
- Home: https://arescentral.org/antares
|
||||
- Inspirations: Ares
|
||||
- Inspiration: Ares
|
||||
- State: beta
|
||||
- Keywords: remake, strategy, real time, shooter
|
||||
- Keyword: remake, strategy, real time, shooter
|
||||
- Code repository: https://github.com/arescentral/antares.git
|
||||
- Code language: C++
|
||||
- Code license: LGPL-3.0
|
||||
|
@ -1,13 +1,13 @@
|
||||
# Anteform
|
||||
|
||||
- Home: https://feneric.itch.io/anteform
|
||||
- Inspirations: Ultima III: Exodus
|
||||
- Inspiration: Ultima III: Exodus
|
||||
- State: beta
|
||||
- Keywords: role playing, similar
|
||||
- Keyword: role playing, similar
|
||||
- Code repository: https://github.com/Feneric/Anteform.git
|
||||
- Code language: Lua
|
||||
- Code license: GPL-3.0
|
||||
- Code dependencies: PICO-8
|
||||
- Code dependency: PICO-8
|
||||
|
||||
Similar of Ultima III: Exodus.
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: https://sourceforge.net/projects/antichess/
|
||||
- State: mature, inactive since 2003
|
||||
- Download: https://sourceforge.net/projects/antichess/files/antichess/1.0/
|
||||
- Keywords: strategy
|
||||
- Keyword: strategy
|
||||
- Code repository: https://gitlab.com/osgames/antichess.git (backup of cvs), http://antichess.cvs.sourceforge.net/ (cvs)
|
||||
- Code language: Java
|
||||
- Code license: MIT
|
||||
|
@ -3,11 +3,11 @@
|
||||
- Home: https://github.com/yiotro/Antiyoy
|
||||
- State: beta
|
||||
- Platform: Android
|
||||
- Keywords: arcade
|
||||
- Keyword: arcade
|
||||
- Code repository: https://github.com/yiotro/Antiyoy.git
|
||||
- Code language: Java
|
||||
- Code license: GPL-3.0
|
||||
- Code dependencies: libGDX
|
||||
- Code dependency: libGDX
|
||||
|
||||
???
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: https://github.com/anura-engine/anura
|
||||
- State: mature
|
||||
- Platform: Windows
|
||||
- Keywords: arcade, game engine
|
||||
- Keyword: arcade, game engine
|
||||
- Code repository: https://github.com/anura-engine/anura.git
|
||||
- Code language: C, C++
|
||||
- Code license: zlib (src folder)
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
- Home: https://web.archive.org/web/20110819212117/http://www.fishies.org.uk/apricots.html
|
||||
- State: beta, inactive since 2003
|
||||
- Keywords: arcade, 2D, open content, side-scrolling
|
||||
- Keyword: arcade, 2D, open content, side-scrolling
|
||||
- Code repository: @see-home
|
||||
- Code language: C++
|
||||
- Code license: GPL-2.0
|
||||
- Code dependencies: SDL
|
||||
- Code dependency: SDL
|
||||
- Assets license: GPL
|
||||
- Developer: Mark Snellgrove, Mark Harman
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
# aquastax
|
||||
|
||||
- Home: https://github.com/LongSteve/aquastax
|
||||
- Inspirations: Aquastax
|
||||
- Inspiration: Aquastax
|
||||
- State: beta
|
||||
- Keywords: puzzle, remake
|
||||
- Keyword: puzzle, remake
|
||||
- Code repository: https://github.com/LongSteve/aquastax.git
|
||||
- Code language: JavaScript
|
||||
- Code license: MIT
|
||||
|
@ -1,11 +1,11 @@
|
||||
# Arashi-JS
|
||||
|
||||
- Home: http://stephank.github.io/arashi-js/
|
||||
- Inspirations: Tempest
|
||||
- Inspiration: Tempest
|
||||
- State: beta, inactive since 2010
|
||||
- Play: http://stephank.github.io/arashi-js/
|
||||
- Platform: Web
|
||||
- Keywords: remake, shooter
|
||||
- Keyword: remake, shooter
|
||||
- Code repository: https://github.com/stephank/arashi-js.git
|
||||
- Code language: JavaScript
|
||||
- Code license: GPL-2.0
|
||||
|
@ -3,11 +3,11 @@
|
||||
- Home: https://github.com/Ershany/Arcane-Engine
|
||||
- State: beta
|
||||
- Platform: Windows
|
||||
- Keywords: library
|
||||
- Keyword: library
|
||||
- Code repository: https://github.com/Ershany/Arcane-Engine.git
|
||||
- Code language: C++
|
||||
- Code license: MIT
|
||||
- Code dependencies: ImGUI, OpenGL
|
||||
- Code dependency: ImGUI, OpenGL
|
||||
|
||||
Real-time, physically based renderer.
|
||||
|
||||
|
@ -3,11 +3,11 @@
|
||||
- Home: https://web.archive.org/web/20190304014608/http://www.jordantrudgett.com/ardentryst/, https://sourceforge.net/projects/ardentryst/, https://web.archive.org/web/20180624012340/https://www.pygame.org/project-Ardentryst-596-.html
|
||||
- State: mature, inactive since 2009
|
||||
- Download: https://web.archive.org/web/20180531203109/http://www.jordantrudgett.com/ardentryst/ardentryst-downloads/, https://sourceforge.net/projects/ardentryst/files/
|
||||
- Keywords: role playing
|
||||
- Keyword: role playing
|
||||
- Code repository: https://github.com/ardentryst/ardentryst.git
|
||||
- Code language: Python
|
||||
- Code license: GPL-3.0
|
||||
- Code dependencies: pygame
|
||||
- Code dependency: pygame
|
||||
|
||||
Action/RPG sidescroller, focused not just on fighting, but on story, and character development.
|
||||
|
||||
|
@ -4,11 +4,11 @@
|
||||
- State: beta, inactive since 2016
|
||||
- Download: https://stephensmith.itch.io/aresdogfighter
|
||||
- Platform: Windows, Linux
|
||||
- Keywords: action, 3D, space
|
||||
- Keyword: action, 3D, space
|
||||
- Code repository: https://github.com/SteveSmith16384/AresDogfighter.git
|
||||
- Code language: Java
|
||||
- Code license: GPL-3.0
|
||||
- Code dependencies: jMonkeyEngine
|
||||
- Code dependency: jMonkeyEngine
|
||||
- Assets license: (See relevant asset folders)
|
||||
- Developer: Stephen Carlyle-Smith
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: https://www.comunidadargentum.com/ (Spanish), http://www.argentumonline.com.ar/ (Spanish), https://sourceforge.net/projects/morgoao/, https://github.com/argentumonline, https://github.com/ao-libre
|
||||
- State: beta, inactive since 2014
|
||||
- Download: https://www.comunidadargentum.com/descargas/, https://sourceforge.net/projects/morgoao/files/
|
||||
- Keywords: role playing, multiplayer online + massive
|
||||
- Keyword: role playing, multiplayer online + massive
|
||||
- Code repository: https://github.com/ao-libre/ao-server.git, https://github.com/ao-libre/ao-cliente.git @add, https://github.com/ao-libre/ao-worldeditor.git @add, http://morgoao.cvs.sourceforge.net/ (cvs)
|
||||
- Code language: Visual Basic
|
||||
- Code license: GPL-2.0, AGPL-3.0
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: https://arianne-project.org/, https://arianne-project.org/engine/marauroa.html, https://sourceforge.net/projects/arianne/
|
||||
- State: mature
|
||||
- Download: https://arianne-project.org/engine/marauroa.html
|
||||
- Keywords: framework, 2D, multiplayer
|
||||
- Keyword: framework, 2D, multiplayer
|
||||
- Code repository: https://git.code.sf.net/p/arianne/marauroa, http://arianne.cvs.sourceforge.net (cvs)
|
||||
- Code language: Java
|
||||
- Code license: GPL-2.0
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
- Home: http://www.armagetronad.org/, https://sourceforge.net/projects/armagetronad/
|
||||
- Media: https://en.wikipedia.org/wiki/Armagetron_Advanced
|
||||
- Inspirations: Snake
|
||||
- Inspiration: Snake
|
||||
- State: mature
|
||||
- Download: http://www.armagetronad.org/downloads.php
|
||||
- Keywords: action
|
||||
- Keyword: action
|
||||
- Code repository: https://github.com/ArmagetronAd/armagetronad.git, https://svn.code.sf.net/p/armagetronad/code (svn)
|
||||
- Code language: C++
|
||||
- Code license: GPL-2.0
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: https://sourceforge.net/projects/armies/
|
||||
- State: mature, inactive since 2007
|
||||
- Download: https://sourceforge.net/projects/armies/files/
|
||||
- Keywords: strategy
|
||||
- Keyword: strategy
|
||||
- Code repository: https://gitlab.com/osgames/armies.git (backup of source release)
|
||||
- Code language: C++
|
||||
- Code license: GPL-3.0
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Armor Alley
|
||||
|
||||
- Home: http://www.schillmania.com/armor-alley/
|
||||
- Inspirations: Armor Alley
|
||||
- Inspiration: Armor Alley
|
||||
- State: beta
|
||||
- Platform: Web
|
||||
- Keywords: action, remake, strategy, content open + non-commercial, shooter
|
||||
- Keyword: action, remake, strategy, content open + non-commercial, shooter
|
||||
- Code repository: https://github.com/scottschiller/ArmorAlley.git
|
||||
- Code language: JavaScript
|
||||
- Code license: CC-BY-NC-3.0 (https://github.com/scottschiller/ArmorAlley/blob/master/LICENSE.txt)
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Artillery Duel Reloaded
|
||||
|
||||
- Home: https://code.google.com/archive/p/artillery-duel-reloaded/
|
||||
- Inspirations: Artillery Duel
|
||||
- Inspiration: Artillery Duel
|
||||
- State: beta, inactive since 2012
|
||||
- Download: https://code.google.com/archive/p/artillery-duel-reloaded/downloads
|
||||
- Keywords: action, remake
|
||||
- Keyword: action, remake
|
||||
- Code repository: @see-download
|
||||
- Code language: Python
|
||||
- Code license: GPL-3.0
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
- Home: https://arx-libertatis.org/
|
||||
- Media: https://en.wikipedia.org/wiki/Arx_Fatalis#Development
|
||||
- Inspirations: Arx Fatalis
|
||||
- Inspiration: Arx Fatalis
|
||||
- State: mature
|
||||
- Download: https://wiki.arx-libertatis.org/Download
|
||||
- Keywords: remake, role playing, commercial content, requires original content (Arx Fatalis)
|
||||
- Keyword: remake, role playing, commercial content, requires original content (Arx Fatalis)
|
||||
- Code repository: https://github.com/arx/ArxLibertatis.git
|
||||
- Code language: C++
|
||||
- Code license: GPL-3.0
|
||||
|
@ -1,11 +1,11 @@
|
||||
# asdf
|
||||
|
||||
- Home: https://timpietrusky.github.io/asdf/
|
||||
- Inspirations: Simon
|
||||
- Inspiration: Simon
|
||||
- State: mature
|
||||
- Play: https://timpietrusky.github.io/asdf/
|
||||
- Platform: Web
|
||||
- Keywords: action, remake
|
||||
- Keyword: action, remake
|
||||
- Code repository: https://github.com/TimPietrusky/asdf.git
|
||||
- Code language: JavaScript
|
||||
- Code license: MIT
|
||||
|
@ -2,14 +2,14 @@
|
||||
|
||||
- Home: https://assault.cubers.net/, https://sourceforge.net/projects/actiongame/ (old)
|
||||
- Media: https://en.wikipedia.org/wiki/AssaultCube
|
||||
- Inspirations: CUBE engine
|
||||
- Inspiration: CUBE engine
|
||||
- State: mature, inactive since 2018
|
||||
- Platform: Windows, Linux, macOS
|
||||
- Keywords: action, first-person, shooter
|
||||
- Keyword: action, first-person, shooter
|
||||
- Code repository: https://github.com/assaultcube/AC.git
|
||||
- Code language: C, C++
|
||||
- Code license: Custom (zlib like)
|
||||
- Code dependencies: SDL
|
||||
- Code dependency: SDL
|
||||
|
||||
Shooter game, based on the CUBE engine.
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
# AstroMenace
|
||||
|
||||
- Home: https://www.viewizard.com/, https://sourceforge.net/projects/openastromenace/
|
||||
- Inspirations: AstroMenace
|
||||
- Inspiration: AstroMenace
|
||||
- State: mature
|
||||
- Download: https://viewizard.com/download.html
|
||||
- Keywords: action, remake, shooter
|
||||
- Keyword: action, remake, shooter
|
||||
- Code repository: https://github.com/viewizard/astromenace.git
|
||||
- Code language: C++, C
|
||||
- Code license: GPL-3.0
|
||||
|
@ -3,11 +3,11 @@
|
||||
- Home: https://gitlab.com/librebob/athenaeum
|
||||
- State: beta
|
||||
- Platform: Linux
|
||||
- Keywords: tool
|
||||
- Keyword: tool
|
||||
- Code repository: https://gitlab.com/librebob/athenaeum.git
|
||||
- Code language: Python
|
||||
- Code license: GPL-3.0
|
||||
- Code dependencies: Qt
|
||||
- Code dependency: Qt
|
||||
|
||||
Game library management tool.
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
# ativayeban
|
||||
|
||||
- Home: https://github.com/Nebuleon/ativayeban
|
||||
- Inspirations: Fall Down
|
||||
- Inspiration: Fall Down
|
||||
- State: mature, inactive since 2015
|
||||
- Keywords: action, clone
|
||||
- Keyword: action, clone
|
||||
- Code repository: https://github.com/Nebuleon/ativayeban.git
|
||||
- Code language: C, C++
|
||||
- Code license: GPL-2.0
|
||||
- Code dependencies: SDL
|
||||
- Code dependency: SDL
|
||||
|
||||
Clone of Fall Down.
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: http://www.prankster.com/project/, https://web.archive.org/web/20151024232821/https://sourceforge.net/projects/atlantis/, https://web.archive.org/web/20140516211231/http://www.atlantis-pbem.org/
|
||||
- Media: https://en.wikipedia.org/wiki/Atlantis_PbeM
|
||||
- State: mature, inactive since 2016
|
||||
- Keywords: framework
|
||||
- Keyword: framework
|
||||
- Code repository: https://github.com/Atlantis-PBEM/Atlantis.git, https://svn.code.sf.net/p/atlantis/code (svn)
|
||||
- Code language: C++
|
||||
- Code license: GPL-2.0
|
||||
|
@ -1,15 +1,15 @@
|
||||
# Atomic Tanks
|
||||
|
||||
- Home: http://atanks.sourceforge.net/, https://sourceforge.net/projects/atanks
|
||||
- Inspirations: Scorched Earth, Worms
|
||||
- Inspiration: Scorched Earth, Worms
|
||||
- State: mature, inactive since 2016
|
||||
- Download: https://sourceforge.net/projects/atanks/files/
|
||||
- Platform: Windows, Linux
|
||||
- Keywords: action, remake, artillery, open content
|
||||
- Keyword: action, remake, artillery, open content
|
||||
- Code repository: https://git.code.sf.net/p/atanks/atanks, https://gitlab.com/osgames/atanks.git @add
|
||||
- Code language: C++
|
||||
- Code license: GPL-2.0
|
||||
- Code dependencies: Allegro
|
||||
- Code dependency: Allegro
|
||||
- Assets license: GPL
|
||||
- Developer: Jesse Smith, Juraj Michalek, Thomas Hudson
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Atomiks
|
||||
|
||||
- Home: http://atomiks.sourceforge.net/, https://sourceforge.net/projects/atomiks
|
||||
- Inspirations: Atomix
|
||||
- Inspiration: Atomix
|
||||
- State: mature, inactive since 2015
|
||||
- Download: https://sourceforge.net/projects/atomiks/files
|
||||
- Keywords: puzzle, remake, commercial content
|
||||
- Keyword: 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 language: C
|
||||
- Code license: GPL-3.0
|
||||
|
@ -1,9 +1,9 @@
|
||||
# Atomix
|
||||
|
||||
- Home: https://wiki.gnome.org/Apps/Atomix
|
||||
- Inspirations: Atomix
|
||||
- Inspiration: Atomix
|
||||
- State: mature
|
||||
- Keywords: puzzle, remake
|
||||
- Keyword: puzzle, remake
|
||||
- Code repository: https://github.com/GNOME/atomix.git
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
- Home: https://www.atrinik.org/, https://github.com/atrinik
|
||||
- State: mature, inactive since 2016
|
||||
- Keywords: role playing
|
||||
- Keyword: role playing
|
||||
- Code repository: https://github.com/atrinik/atrinik.git
|
||||
- Code language: C, Python
|
||||
- Code license: GPL-2.0
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: https://sourceforge.net/projects/attal/
|
||||
- State: mature, inactive since 2008
|
||||
- Download: https://sourceforge.net/projects/attal/files/Attal/
|
||||
- Keywords: strategy, turn-based
|
||||
- Keyword: strategy, turn-based
|
||||
- Code repository: https://gitlab.com/osgames/attal.git (backup of cvs), http://attal.cvs.sourceforge.net/ (cvs)
|
||||
- Code language: C++
|
||||
- Code license: GPL-2.0
|
||||
|
@ -4,11 +4,11 @@
|
||||
- State: beta, inactive since 2015
|
||||
- Download: http://aussenposten.gamejs.org/download.html
|
||||
- Platform: Windows, Linux
|
||||
- Keywords: strategy, open content, real time
|
||||
- Keyword: strategy, open content, real time
|
||||
- Code repository: @see-download
|
||||
- Code language: JavaScript
|
||||
- Code license: MIT
|
||||
- Code dependencies: GameJs
|
||||
- Code dependency: GameJs
|
||||
- Assets license: CC-BY-SA
|
||||
|
||||
Base building game with artificial life simulation.
|
||||
|
@ -3,11 +3,11 @@
|
||||
- Home: https://sourceforge.net/projects/autorealm/
|
||||
- State: mature
|
||||
- Download: https://sourceforge.net/projects/autorealm/files
|
||||
- Keywords: tool
|
||||
- Keyword: tool
|
||||
- Code repository: https://git.code.sf.net/p/autorealm/code, https://git.code.sf.net/p/autorealm/http @add, https://git.code.sf.net/p/autorealm/delphi @add
|
||||
- Code language: C++
|
||||
- Code license: GPL-3.0
|
||||
- Code dependencies: wxWidgets
|
||||
- Code dependency: wxWidgets
|
||||
|
||||
Role-playing game mapping program.
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: http://avanor.sourceforge.net/, https://sourceforge.net/projects/avanor/
|
||||
- State: beta, inactive since 2008
|
||||
- Download: https://sourceforge.net/projects/avanor/files
|
||||
- Keywords: role playing, roguelike
|
||||
- Keyword: role playing, roguelike
|
||||
- Code repository: https://gitlab.com/osgames/avanor.git (backup of svn), https://svn.code.sf.net/p/avanor/code (svn)
|
||||
- Code language: C++, Lua
|
||||
- Code license: GPL-2.0
|
||||
|
@ -4,11 +4,11 @@
|
||||
- State: mature
|
||||
- Download: https://mdsteele.games/azimuth/download.html
|
||||
- Platform: Windows, Linux, macOS
|
||||
- Keywords: adventure, open content, shooter, top-down
|
||||
- Keyword: adventure, open content, shooter, top-down
|
||||
- Code repository: https://github.com/mdsteele/azimuth.git
|
||||
- Code language: C
|
||||
- Code license: GPL-3.0
|
||||
- Code dependencies: SDL
|
||||
- Code dependency: SDL
|
||||
- Assets license: GPL-3.0
|
||||
- Developer: Matthew D. Steele
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
- Home: https://web.archive.org/web/20171114191824/http://bacon2d.com/, http://bacon2d.github.io/docs/
|
||||
- State: beta, inactive since 2018
|
||||
- Keywords: game engine
|
||||
- Keyword: game engine
|
||||
- Code repository: https://github.com/Bacon2D/Bacon2D.git
|
||||
- Code language: C++
|
||||
- Code license: MIT
|
||||
- Code dependencies: Qt
|
||||
- Code dependency: Qt
|
||||
|
||||
2D Game Engine for QML.
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
- State: beta, inactive since 2009
|
||||
- Download: https://sourceforge.net/projects/balder/files/
|
||||
- Platform: Linux
|
||||
- Keywords: strategy, open content
|
||||
- Keyword: strategy, open content
|
||||
- Code repository: https://svn.code.sf.net/p/balder/code (svn)
|
||||
- Code language: C++
|
||||
- Code license: GPL-2.0
|
||||
|
@ -3,11 +3,11 @@
|
||||
- Home: https://www.gnu.org/software/ballandpaddle/
|
||||
- State: beta, inactive since 2009
|
||||
- Platform: Linux
|
||||
- Keywords: action, open content
|
||||
- Keyword: action, open content
|
||||
- Code repository: https://gitlab.com/osgames/ballandpaddle.git (conversion of bzr), http://bzr.savannah.gnu.org/r/ballandpaddle/ (bzr)
|
||||
- Code language: C++, Scheme
|
||||
- Code license: GPL-3.0
|
||||
- Code dependencies: GNU Guile, SDL
|
||||
- Code dependency: GNU Guile, SDL
|
||||
- Assets license: GPL
|
||||
- Developer: Eric P. Hutchins
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
# Ball And Wall
|
||||
|
||||
- Home: https://budnix.github.io/ball-and-wall/
|
||||
- Inspirations: Arkanoid
|
||||
- Inspiration: Arkanoid
|
||||
- State: mature, inactive since 2015
|
||||
- Keywords: action, clone
|
||||
- Keyword: action, clone
|
||||
- Code repository: https://github.com/budnix/ball-and-wall.git
|
||||
- Code language: JavaScript
|
||||
- Code license: MIT
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
- Home: https://baller.tuxfamily.org/
|
||||
- Media: https://en.wikipedia.org/wiki/Ballerburg
|
||||
- Inspirations: Ballerburg
|
||||
- Inspiration: Ballerburg
|
||||
- State: mature
|
||||
- Keywords: action, remake, artillery
|
||||
- Keyword: 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 language: C
|
||||
- Code license: GPL-3.0
|
||||
- Code dependencies: SDL2
|
||||
- Code dependency: SDL2
|
||||
|
||||
Remake of the Turnbased Artillery game from 1987.
|
||||
[Original](http://www.eckhardkruse.net/atari_st/baller.html) in the Public domain.
|
||||
|
@ -1,13 +1,13 @@
|
||||
# Barony
|
||||
|
||||
- Home: http://www.baronygame.com/
|
||||
- Inspirations: Barony
|
||||
- Inspiration: Barony
|
||||
- State: mature
|
||||
- Keywords: remake, role playing, commercial content, multiplayer co-op + online + LAN, roguelike
|
||||
- Keyword: remake, role playing, commercial content, multiplayer co-op + online + LAN, roguelike
|
||||
- Code repository: https://github.com/TurningWheel/Barony.git
|
||||
- Code language: C++
|
||||
- Code license: GPL-3.0
|
||||
- Code dependencies: OpenGL, SDL2
|
||||
- Code dependency: OpenGL, SDL2
|
||||
|
||||
3D, first-person roguelike.
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
# Bastet
|
||||
|
||||
- Home: http://fph.altervista.org/prog/bastet.html
|
||||
- Inspirations: Tetris
|
||||
- Inspiration: Tetris
|
||||
- State: beta, inactive since 2018
|
||||
- Keywords: puzzle, open content, skill
|
||||
- Keyword: puzzle, open content, skill
|
||||
- Code repository: https://github.com/fph/bastet.git
|
||||
- Code language: C++
|
||||
- Code license: GPL-2.0
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: http://batnav.sourceforge.net/batnav-en.html, https://sourceforge.net/projects/batnav/
|
||||
- State: mature, inactive since 2002
|
||||
- Download: https://sourceforge.net/projects/batnav/files/
|
||||
- Keywords: arcade, multiplayer
|
||||
- Keyword: arcade, multiplayer
|
||||
- Code repository: https://gitlab.com/osgames/batnav.git (import of cvs), http://batnav.cvs.sourceforge.net (cvs)
|
||||
- Code language: C
|
||||
- Code license: GPL-2.0
|
||||
|
@ -1,11 +1,11 @@
|
||||
# Batrachians
|
||||
|
||||
- Home: https://perso.b2b2c.ca/~sarrazip/dev/batrachians.html
|
||||
- Inspirations: Frogs and Flies
|
||||
- Inspiration: Frogs and Flies
|
||||
- State: beta, inactive since 2012
|
||||
- Download: https://perso.b2b2c.ca/~sarrazip/dev/batrachians.html#download
|
||||
- Platform: Linux
|
||||
- Keywords: action, remake
|
||||
- Keyword: action, remake
|
||||
- Code repository: @see-download
|
||||
- Code language: C++
|
||||
- Code license: GPL-2.0
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: https://web.archive.org/web/20120213105444/http://btrgame.com/, https://sourceforge.net/projects/battery/
|
||||
- State: mature, inactive since 2009
|
||||
- Download: https://sourceforge.net/projects/battery/files/battery/
|
||||
- Keywords: arcade, side-scrolling
|
||||
- Keyword: arcade, side-scrolling
|
||||
- Code repository: https://github.com/GaidamakUA/BatteryReborn.git (new approach)
|
||||
- Code language: Java
|
||||
- Code license: EPL-2.0 (new approach), Custom (old see _README.txt)
|
||||
|
@ -1,9 +1,9 @@
|
||||
# Battle City
|
||||
|
||||
- Home: https://battlecity.org/
|
||||
- Inspirations: Battle City
|
||||
- Inspiration: Battle City
|
||||
- State: mature, inactive since 2013
|
||||
- Keywords: action, remake, strategy
|
||||
- Keyword: action, remake, strategy
|
||||
- Code repository: https://github.com/Deceth/Battle-City.git
|
||||
- Code language: C, C++, Pascal
|
||||
- Code license: GPL-3.0
|
||||
|
@ -4,7 +4,7 @@
|
||||
- State: mature, inactive since 2009
|
||||
- Download: https://sourceforge.net/projects/btanks/files/
|
||||
- Platform: Windows, Linux, macOS
|
||||
- Keywords: action, arcade, commercial content
|
||||
- Keyword: action, arcade, commercial content
|
||||
- Code repository: https://github.com/whoozle/btanks.git, https://svn.code.sf.net/p/btanks/code (svn)
|
||||
- Code language: C++
|
||||
- Code license: GPL-2.0
|
||||
|
@ -3,7 +3,7 @@
|
||||
- Home: https://sourceforge.net/projects/battlefieldjava/
|
||||
- State: beta, inactive since 2011
|
||||
- Download: https://sourceforge.net/projects/battlefieldjava/files/battlefieldjava/
|
||||
- Keywords: strategy
|
||||
- Keyword: strategy
|
||||
- Code repository: https://github.com/bsutton/BattlefieldJava.git, https://git.code.sf.net/p/battlefieldjava/git, http://battlefieldjava.cvs.sourceforge.net (cvs)
|
||||
- Code language: Java
|
||||
- Code license: GPL-3.0
|
||||
|
@ -3,11 +3,11 @@
|
||||
- Home: https://github.com/Leejjon/Battleround
|
||||
- State: beta, inactive since 2015
|
||||
- Platform: Android
|
||||
- Keywords: role playing
|
||||
- Keyword: role playing
|
||||
- Code repository: https://github.com/Leejjon/Battleround.git
|
||||
- Code language: Java
|
||||
- Code license: Apache-2.0
|
||||
- Code dependencies: libGDX
|
||||
- Code dependency: libGDX
|
||||
|
||||
Round based RPG.
|
||||
May be more like alpha.
|
||||
|
@ -1,9 +1,9 @@
|
||||
# Battles of Antargis
|
||||
|
||||
- Home: https://plus.google.com/101003433246259562872
|
||||
- Inspirations: Powermonger, Settlers, Warcraft
|
||||
- Inspiration: Powermonger, Settlers, Warcraft
|
||||
- State: beta, inactive since 2014
|
||||
- Keywords: strategy
|
||||
- Keyword: strategy
|
||||
- Code repository: https://github.com/godrin/antargis.git
|
||||
- Code language: C, C++
|
||||
- Code license: GPL-2.0
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user