additions from backlog, issues, osgameclones

This commit is contained in:
Trilarion
2021-09-15 10:11:05 +02:00
parent 03fe991683
commit 219a89f164
58 changed files with 604 additions and 195 deletions

View File

@ -233,11 +233,15 @@
"https://github.com/Fundynamic/dune2themaker4j.git",
"https://github.com/GNOME/aisleriot.git",
"https://github.com/GNOME/atomix.git",
"https://github.com/GNOME/quadrapassel.git",
"https://github.com/GTA-ASM/SanAndreasUnity.git",
"https://github.com/GaidamakUA/BatteryReborn.git",
"https://github.com/Gang-Garrison-2/Gang-Garrison-2.git",
"https://github.com/GarageGames/Torque2D.git",
"https://github.com/GarageGames/Torque3D.git",
"https://github.com/GentenStudios/QuartzEngine.git",
"https://github.com/GerHobbelt/pthread-win32.git",
"https://github.com/GlPortal/RadixEngine.git",
"https://github.com/GlPortal/glPortal.git",
"https://github.com/Gnomescroll/Gnomescroll.git",
"https://github.com/GoogleChromeLabs/proxx.git",
@ -260,6 +264,7 @@
"https://github.com/Illarion-eV/Illarion-Content.git",
"https://github.com/Illarion-eV/Illarion-Java.git",
"https://github.com/Illarion-eV/Illarion-Server.git",
"https://github.com/Im-dex/xray-162.git",
"https://github.com/Interkarma/daggerfall-unity.git",
"https://github.com/Interrupt/delverengine.git",
"https://github.com/Interrupt/systemshock.git",
@ -296,6 +301,7 @@
"https://github.com/MaKiPL/OpenVIII-monogame.git",
"https://github.com/MadDeCoDeR/Classic-RBDOOM-3-BFG.git",
"https://github.com/Marisa-Chan/UA_source.git",
"https://github.com/Martenfur/Monofoxe.git",
"https://github.com/MattMatt0240/DemiGod.git",
"https://github.com/MaxSavenkov/drdestructo2.git",
"https://github.com/MaxwellSalmon/DUGA.git",
@ -332,6 +338,7 @@
"https://github.com/OpenArena/engine.git",
"https://github.com/OpenDUNE/OpenDUNE.git",
"https://github.com/OpenDominion/OpenDominion.git",
"https://github.com/OpenDriver2/REDRIVER2.git",
"https://github.com/OpenDungeons/OpenDungeons.git",
"https://github.com/OpenFodder/openfodder.git",
"https://github.com/OpenHV/OpenHV.git",
@ -354,6 +361,7 @@
"https://github.com/PlatinumArts/Platinum-Arts-Sandbox-Free-Game-Maker.git",
"https://github.com/Ponup/thiefcatcher.git",
"https://github.com/Project-F/F.LF.git",
"https://github.com/Pyrdacor/Ambermoon.net.git",
"https://github.com/Pyrdacor/freeserf.net.git",
"https://github.com/Qalthos/Tile-World.git",
"https://github.com/REGoth-project/REGoth-bs.git",
@ -418,9 +426,12 @@
"https://github.com/TimPietrusky/asdf.git",
"https://github.com/TobiasBielefeld/Simple-Brick-Games.git",
"https://github.com/TobiasBielefeld/Simple-Solitaire.git",
"https://github.com/TorqueGameEngines/Torque2D.git",
"https://github.com/TorqueGameEngines/Torque3D.git",
"https://github.com/Try/OpenGothic.git",
"https://github.com/TurningWheel/Barony.git",
"https://github.com/Tuxemon/Tuxemon.git",
"https://github.com/UPBGE/upbge.git",
"https://github.com/UberGames/rpgxEF.git",
"https://github.com/UltraStar-Deluxe/USDX.git",
"https://github.com/UltraStar-Deluxe/legacy-sourceforge-svn-mirror.git",
@ -437,6 +448,7 @@
"https://github.com/VilleKrumlinde/zgameeditor.git",
"https://github.com/Vocaluxe/Vocaluxe.git",
"https://github.com/WAUthethird/Marble-Marcher-Community-Edition.git",
"https://github.com/WagicProject/wagic.git",
"https://github.com/Wargus/stargus.git",
"https://github.com/Wargus/stratagus.git",
"https://github.com/Wargus/wargus.git",
@ -445,6 +457,7 @@
"https://github.com/WindstilleTeam/windstille.git",
"https://github.com/XProger/OpenLara.git",
"https://github.com/Xenoveritas/abuse.git",
"https://github.com/Zal0/ZGB.git",
"https://github.com/ZeroK-RTS/Zero-K.git",
"https://github.com/Zetawar/zetawar.git",
"https://github.com/Zillode/Slot-Racers.git",
@ -702,6 +715,7 @@
"https://github.com/freeserf/freeserf.git",
"https://github.com/fynnfluegge/oreon-engine.git",
"https://github.com/gabrielecirulli/2048.git",
"https://github.com/gbdk-2020/gbdk-2020.git",
"https://github.com/gbtami/pychess-variants.git",
"https://github.com/gemrb/gemrb.git",
"https://github.com/gerstrong/Commander-Genius.git",
@ -714,6 +728,7 @@
"https://github.com/godrin/antargis.git",
"https://github.com/goldeneye-source/ges-code.git",
"https://github.com/gondur/cartlife_src.git",
"https://github.com/gongminmin/KlayGE.git",
"https://github.com/gp-alex/world-of-might-and-magic.git",
"https://github.com/graememcc/micropolisJS.git",
"https://github.com/gregoryfenton/other-life.git",
@ -735,7 +750,10 @@
"https://github.com/hexoshi/hexoshi.git",
"https://github.com/highfestiva/life.git",
"https://github.com/hinogi/eternalwinterwars.git",
"https://github.com/horde3d/Horde3D.git",
"https://github.com/hypatia-software-org/hypatia-engine.git",
"https://github.com/i-love-kfc/xray-oxygen.git",
"https://github.com/i42output/neoGFX.git",
"https://github.com/iamCode/Dawn.git",
"https://github.com/iamgreaser/iceball.git",
"https://github.com/id-Software/DOOM-iOS.git",
@ -1061,6 +1079,7 @@
"https://github.com/stephank/orona.git",
"https://github.com/stephenjsweeney/blobwarsAttrition.git",
"https://github.com/stepmania/stepmania.git",
"https://github.com/stohrendorf/EdisonEngine.git",
"https://github.com/stople/OpenTitus.git",
"https://github.com/storm-devs/storm-engine.git",
"https://github.com/stransky/berusky.git",
@ -1171,6 +1190,7 @@
"https://github.com/xyzz/openmw-android.git",
"https://github.com/y2s82/goblin_camp.git",
"https://github.com/yairm210/UnCiv.git",
"https://github.com/yangshun/2048-python.git",
"https://github.com/yeKcim/warmux.git",
"https://github.com/yiotro/Antiyoy.git",
"https://github.com/yokljo/ruzzt.git",
@ -1181,6 +1201,7 @@
"https://github.com/zaps166/NFSIISE.git",
"https://github.com/zenorogue/hyperrogue.git",
"https://github.com/zenorogue/noteye.git",
"https://github.com/zhangdoa/InnocenceEngine.git",
"https://github.com/zombieman1041/BlakedAwesomenaughts.git",
"https://github.com/zuzuf/TA3D.git",
"https://gitlab.axiodl.com/AxioDL/metaforce.git",

View File

@ -9,7 +9,6 @@ http://cyxdown.free.fr/f2b/
http://dead-code.org/home/
http://e-adventure.e-ucm.es/login/index.php (games of eAdventure)
http://ethernet.wasted.ch/
http://evolonline.org/about
http://game-editor.com/Main_Page
http://giderosmobile.com/
http://haxepunk.com/
@ -60,6 +59,7 @@ http://turbu-rpg.com/
http://web.archive.org/web/20071218214256/http://users.tkk.fi/~eye/roguelike/nethack.html
http://wiki.gp2x.org/articles/g/a/m/Category:Games.html (all of them)
http://wiki.scummvm.org/index.php/HOWTO-Fangames
http://wiki.stellarforces.com/
http://ww12.atomicgameengine.com
http://www.13thmonkey.org/~boris/jgame/
http://www.abandonia.com/en/games/138/Hidden+Agenda.html
@ -179,6 +179,7 @@ https://en.wikipedia.org/w/index.php?title=Trigger_Rally&action=edit&redlink=1
https://en.wikipedia.org/wiki/Catacomb_(video_game) (released under GNU)
https://en.wikipedia.org/wiki/Category:Open-source_video_games (all of them)
https://en.wikipedia.org/wiki/GNOME_Games_Collection
https://en.wikipedia.org/wiki/List_of_commercial_video_games_released_as_freeware
https://en.wikipedia.org/wiki/List_of_commercial_video_games_with_available_source_code
https://en.wikipedia.org/wiki/List_of_cult_video_games (all of them)
https://en.wikipedia.org/wiki/List_of_free_and_open-source_Android_applications#Games
@ -238,34 +239,25 @@ https://github.com/FUSEEProjectTeam/Fusee
https://github.com/Gamaen (all their repositories)
https://github.com/gamearians
https://github.com/GamedevFramework/gf
https://github.com/gan74/Yave
https://github.com/GarageGames/Torque3D
https://github.com/Garux/netradiant-custom
https://github.com/GDQuest/godot-visual-effects
https://github.com/Gforcex/OpenGraphic (all open source game engines there)
https://github.com/GlPortal/RadixEngine
https://github.com/gnFur/Monofoxe
https://github.com/GNOME/quadrapassel
https://github.com/godlikepanos/anki-3d-engine
https://github.com/godot-extended-libraries/godot-next
https://github.com/godot-mega-man/Mega-Man-Engine
https://github.com/godotengine/awesome-godot#games
https://github.com/godotengine/escoria
https://github.com/godotengine/godot-design
https://github.com/gongminmin/KlayGE
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
https://github.com/horde3d/Horde3D
https://github.com/Hotride/OrionUO
https://github.com/Hotride/OrionUO (and all other Ultima Online clients and server emulators)
https://github.com/hparcells/cards-against-humanity
https://github.com/i42output/neoGFX
https://github.com/ianfab/Fairy-Stockfish
https://github.com/ictrobot/Cubes
https://github.com/id-Software
https://github.com/Illation/ETEngine
https://github.com/Im-dex/xray-162
https://github.com/jasonrohrer (add gits to his games)
https://github.com/jatinmandav/Gaming-in-Python
https://github.com/Jaxe-Dev/RimHUD
@ -297,7 +289,6 @@ https://github.com/MarcoLizza/tofu-engine
https://github.com/MarilynDafa/Bulllord-Engine
https://github.com/mars-sim/mars-sim
https://github.com/marshallward/TiledSharp
https://github.com/Martenfur/Monofoxe
https://github.com/marukrap/RoguelikeDevResources
https://github.com/MatthewTheGlutton/HideousDestructor
https://github.com/McKay42/McOsu
@ -414,33 +405,24 @@ https://github.com/tlgkccampbell/ultraviolet
https://github.com/TomBebb/awe
https://github.com/tomlooman/SimpleFPSTemplate
https://github.com/topics/top-down-shooter
https://github.com/TorqueGameEngines/Torque3D
https://github.com/ttencate/jfxr
https://github.com/uberspot/2048-android
https://github.com/untakenstupidnick/nbsdgames (Blockout II)
https://github.com/untakenstupidnick/nbsdgames (Cross-platform ncurses/pdcurses based games under active development)
https://github.com/UnterrainerInformatik/GameDevelopmentLinks
https://github.com/UPBGE/upbge
https://github.com/Venom0us/Emberpoint
https://github.com/videogamepreservation
https://github.com/vini-guerrero/Godot_Game_Tools
https://github.com/vocollapse/Blockinger
https://github.com/WagicProject/wagic
https://github.com/weigert/TinyEngine
https://github.com/wesnoth/haldric
https://github.com/WohlSoft/PGE-Project
https://github.com/wojtekpil/Godot-Octahedral-Impostors
https://github.com/xrOxygen/xray-oxygen
https://github.com/YuriiSalimov/15-puzzle
https://github.com/Zal0/ZGB
https://github.com/zcaliptium/gdinv
https://github.com/zhangdoa/InnocenceEngine
https://github.com/zurn/zapper (or any other tapper clone)
https://gitlab.com/LibreGames
https://gitlab.com/luckeyproductions/games (all of them)
https://gitlab.com/nyov/nyovs-nexuiz
https://gitlab.com/vgstation/vgstation-old (and vgstation in general)
https://gitlab.com/xonlegacy/xonlegacy
https://gitlab.openrsc.com/open-rsc
https://gitorious.org/index-list.html (are there other interesting games)
https://gottcode.org/ (all)
@ -466,6 +448,7 @@ https://love2d.org/forums/viewforum.php?f=14 (check them if time)
https://moaiwebsite.github.io/
https://notabug.org/Calinou/awesome-gamedev#games
https://odr.chalmers.se/handle/20.500.12380/219006
https://opensourcesoftwaredirectory.com/Games/Strategy-games (and all others there)
https://opensourcesoftwaredirectory.com/games/strategy-games (and others there)
https://osdn.net/softwaremap/trove_list.php?form_cat=80
https://packages.debian.org/sid/games/etw
@ -480,13 +463,11 @@ https://pygame.org/project-LOF-2296-.html
https://pygame.org/project-Mines+of+Elderlore-674-.html
https://pygame.org/project-Monstrosity-2993-.html
https://pygame.org/project-Phantasy+Star+Rebirth-1704-.html
https://pygame.org/project-Ransack-2408-.html
https://pygame.org/project-The+Cabbages-2077-.html
https://pypi.org/project/CherryPy/
https://pypi.org/project/neteria/
https://pypi.org/project/networkx/
https://pypi.org/project/PyAMF/
https://pypi.org/project/simplejson/
https://pypi.org/project/SQLAlchemy/
https://pypi.org/project/TurboGears/
https://pyweek.org/4/entries/ (Ascent of Justice)
@ -500,6 +481,7 @@ https://scratch.mit.edu/ (https://en.scratch-wiki.info/wiki/Scratch_Source_Code)
https://senseis.xmp.net/?GNUGo
https://sites.google.com/site/syllablesoftware/games (List of games (with screenshots) that have been ported to Syllable OS)
https://sourceforge.net/directory/games/games/os:windows/
https://sourceforge.net/directory/games/turnbasedstrategy/ (and the general games directory, maybe even sourceforge metadata, see https://github.com/chpwssn/sourceforge-items, https://github.com/JesseWeinstein/sourceforge-items-cache)
https://sourceforge.net/projects/dices/
https://sourceforge.net/projects/dsa-hl.berlios/
https://sourceforge.net/projects/lgames/files/barrage/
@ -530,10 +512,10 @@ https://stendhalgame.org/wiki/Marauroa
https://stephensmith.itch.io/ (all of them)
https://tangramgames.dk/games/ (all)
https://threejs.org/
https://unity.com/
https://verge-rpg.com/
https://voltisoft.com/miragelegacy
https://web.archive.org/web/20060411054656/http://home.gna.org/oomadness/en/index.html
https://web.archive.org/web/20060812164344/http://rubyforge.org/ (games from rubyforge)
https://web.archive.org/web/20150526225753/http://sourceforge.net/projects/mameosx/
https://web.archive.org/web/20150527150705/http://sourceforge.net/p/forge/community-docs/SourceForge%20Games/ (schon erledigt)
https://web.archive.org/web/20170714065728/http://users.olis.net.au/zel/
@ -543,7 +525,6 @@ https://www.adventuregamestudio.co.uk/
https://www.allegro.cc/depot/strategy/ (and all other genres there)
https://www.b3dgs.com/v7/page.php?lang=en&section=projects
https://www.bennugd.org/
https://www.blender.org/
https://www.bsframework.io/
https://www.celephais.net/fitzquake/
https://www.choiceofgames.com/make-your-own-games/choicescript-intro/
@ -556,7 +537,6 @@ https://www.gamingonlinux.com/free-games/ (all of them that are open source)
https://www.glitchthegame.com/ (Glitch the game, by Tiny Speck Inc. public domain)
https://www.gog.com/forum/general/free_open_source_games (and suggestions therein)
https://www.libretro.com/
https://www.libsdl.org/
https://www.moddb.com/ (scrape, look for open source)
https://www.moddb.com/engines/pyrogenesis
https://www.moddb.com/engines/sage-strategy-action-game-engine
@ -565,7 +545,6 @@ https://www.musztardasarepska.pl/wgdown/
https://www.ness-engine.com/
https://www.old-games.ru/forum/threads/nekommercheskie-analogi-izvestnyx-igr.40868/page-9
https://www.openhub.net/ (search for games)
https://www.phpbb.com/
https://www.piston.rs/
https://www.reddit.com/r/opensource/comments/cs6m3y/a_list_of_fossrelated_projects_people_to_follow/
https://www.reddit.com/r/opensourcegames/

View File

@ -46,12 +46,13 @@ osgc_name_aliases = {'4DTris': '4D-TRIS', 'fheroes2': 'Free Heroes 2', 'DrCreep'
'mewl': 'M.E.W.L.', 'LinWarrior': 'Linwarrior 3D', 'Mice Men Remix': 'Mice Men: Remix',
'OpenApoc': 'Open Apocalypse', 'open-cube': 'Open Cube', 'open-horizon': 'Open Horizon',
'opengl_test_drive_clone': 'OpenGL Test Drive Remake', "Freenukum Jump'n Run": 'Freenukum',
'Play Freeciv!': 'Freeciv-web', 'ProjectX': 'Forsaken', 'Lyon': 'Roton',
'Play Freeciv!': 'Freeciv-web', 'ProjectX': 'Forsaken', 'Lyon': 'Roton', 'Mafia II: Toolkit': 'Mafia: Toolkit',
'Siege of Avalon Open Source': 'Siege of Avalon : Open Source', 'ss13remake': 'SS13 Remake',
'shadowgrounds': 'Shadowgrounds', 'RxWars': 'Prescription Wars',
'shadowgrounds': 'Shadowgrounds', 'RxWars': 'Prescription Wars', 'REDRIVER2': 'REDriver2',
'Super Mario Bros And Level Editor in C#': 'Mario Objects', 'Unitystation': 'unitystation',
'tetris': 'Just another Tetris™ clone', 'twin-e': 'TwinEngine', 'super-methane-brothers-gx': 'Super Methane Brothers for Wii and GameCube',
'CrossUO: Ultima Online': 'CrossUO', 'Doomsday': 'Doomsday Engine', 'OpMon': 'OPMon'}
'CrossUO: Ultima Online': 'CrossUO', 'Doomsday': 'Doomsday Engine', 'OpMon': 'OPMon',
'2048-python': '2048 Python'}
# conversion between licenses syntax them and us
osgc_licenses_map = {'GPL2': 'GPL-2.0', 'GPL3': 'GPL-3.0', 'AGPL3': 'AGPL-3.0', 'LGPL3': 'LGPL-3.0',
@ -98,10 +99,10 @@ def unique_field_contents(entries, field):
def compare_sets(a, b, name, limit=None):
"""
:param limit:
:param a:
:param b:
:param name:
:param limit: 'notus', 'notthem'
:param a: them
:param b: us
:param name: prefix in output
:return:
"""
p = ''
@ -123,6 +124,7 @@ if __name__ == "__main__":
# some parameter
similarity_threshold = 0.8
maximal_newly_created_entries = 40
check_similar_names = False
# paths
root_path = os.path.realpath(os.path.join(os.path.dirname(__file__), os.path.pardir))
@ -234,23 +236,24 @@ if __name__ == "__main__":
print('osgc-content: {}'.format(unique_field_contents(osgc_entries, 'content')))
# read our database
our_entries = osg.assemble_infos()
our_entries = osg.read_entries()
print('{} entries with us'.format(len(our_entries)))
# just the names
osgc_names = set([x['name'] for x in osgc_entries])
our_names = set([x['name'] for x in our_entries])
our_names = set([x['Title'] for x in our_entries])
common_names = osgc_names & our_names
osgc_names -= common_names
our_names -= common_names
print('{} in both, {} only in osgameclones, {} only with us'.format(len(common_names), len(osgc_names),
len(our_names)))
# find similar names among the rest
# print('look for similar names')
# for osgc_name in osgc_names:
# for our_name in our_names:
# if osg.name_similarity(osgc_name, our_name) > similarity_threshold:
# print(' {} - {}'.format(osgc_name, our_name))
if check_similar_names:
print('look for similar names (theirs - ours)')
for osgc_name in osgc_names:
for our_name in our_names:
if osg.name_similarity(osgc_name, our_name) > similarity_threshold:
print(' {} - {}'.format(osgc_name, our_name))
newly_created_entries = 0
# iterate over their entries
@ -259,7 +262,7 @@ if __name__ == "__main__":
is_included = False
for our_entry in our_entries:
our_name = our_entry['name']
our_name = our_entry['Title']
# find those that entries in osgameclones that are also in our database and compare them
if osgc_name == our_name:
@ -269,19 +272,21 @@ if __name__ == "__main__":
p = ''
# TODO key names have changed on our side
# compare their lang with our code language
if 'lang' in osgc_entry:
osgc_languages = osgc_entry['lang']
if type(osgc_languages) == str:
osgc_languages = [osgc_languages]
our_languages = our_entry['code language'] # essential field
our_languages = [x.value for x in our_entry['Code language']] # essential field
p += compare_sets(osgc_languages, our_languages, 'code language')
# compare their license with our code and assets license
if 'license' in osgc_entry:
osgc_licenses = osgc_entry['license']
our_code_licenses = our_entry['code license'] # essential field
our_assets_licenses = our_entry.get('assets license', [])
our_code_licenses = [x.value for x in our_entry['Code license']] # essential field
our_assets_licenses = [x.value for x in our_entry.get('Assets license', [])]
p += compare_sets(osgc_licenses, our_code_licenses + our_assets_licenses, 'licenses', 'notthem')
p += compare_sets(osgc_licenses, our_code_licenses, 'licenses', 'notus')
@ -291,7 +296,7 @@ if __name__ == "__main__":
osgc_frameworks = osgc_entry['framework']
if type(osgc_frameworks) == str:
osgc_frameworks = [osgc_frameworks]
our_frameworks = our_entry.get('code dependencies', [])
our_frameworks = [x.value for x in our_entry.get('Code dependency', [])]
our_frameworks = [x.casefold() for x in our_frameworks]
our_frameworks = [x if x not in our_framework_replacements else our_framework_replacements[x] for x
in our_frameworks]
@ -307,14 +312,14 @@ if __name__ == "__main__":
osgc_repos = [x for x in osgc_repos if not x.startswith(
'sourceforge.net/projects/')] # we don't need the general sites there
# osgc_repos = [x for x in osgc_repos if not x.startswith('https://sourceforge.net/projects/')] # ignore some
our_repos = our_entry.get('code repository', [])
our_repos = [utils.strip_url(url) for url in our_repos]
our_repos = our_entry.get('Code repository', [])
our_repos = [utils.strip_url(url.value) for url in our_repos]
our_repos = [x for x in our_repos if not x.startswith(
'gitlab.com/osgames/')] # we do not yet spread our own deeds (but we will some day)
our_repos = [x for x in our_repos if
'cvs.sourceforge.net' not in x and 'svn.code.sf.net/p/' not in x] # no cvs or svn anymore
our_downloads = our_entry.get('download', [])
our_downloads = [utils.strip_url(url) for url in our_downloads]
our_downloads = our_entry.get('Download', [])
our_downloads = [utils.strip_url(url.value) for url in our_downloads]
p += compare_sets(osgc_repos, our_repos + our_downloads, 'repo',
'notthem') # if their repos are not in our downloads or repos
p += compare_sets(osgc_repos, our_repos[:1], 'repo',
@ -326,8 +331,8 @@ if __name__ == "__main__":
if type(osgc_urls) == str:
osgc_urls = [osgc_urls]
osgc_urls = [utils.strip_url(url) for url in osgc_urls]
our_urls = our_entry['home']
our_urls = [utils.strip_url(url) for url in our_urls]
our_urls = our_entry['Home']
our_urls = [utils.strip_url(url.value) for url in our_urls]
p += compare_sets(osgc_urls, our_urls, 'url/home', 'notthem') # if their urls are not in our urls
# our_urls = [url for url in our_urls if
# not url.startswith('github.com/')] # they don't have them as url
@ -337,7 +342,7 @@ if __name__ == "__main__":
# compare their status with our state (playable can be beta/mature with us, but not playable must be beta)
if 'status' in osgc_entry:
osgc_status = osgc_entry['status']
our_status = our_entry['state'] # essential field
our_status = our_entry['State'] # essential field
if osgc_status != 'playable' and 'mature' in our_status:
p += ' status : mismatch : them {}, us mature\n'.format(osgc_status)
@ -345,7 +350,7 @@ if __name__ == "__main__":
if 'development' in osgc_entry:
osgc_development = osgc_entry['development']
our_inactive = 'inactive' in our_entry
our_status = our_entry['state'] # essential field
our_status = our_entry['State'] # essential field
if osgc_development == 'halted' and not our_inactive:
p += ' development : mismatch : them halted - us not inactive\n'
if osgc_development in ['very active', 'active'] and our_inactive:
@ -353,8 +358,8 @@ if __name__ == "__main__":
if osgc_development == 'complete' and 'mature' not in our_status:
p += ' development : mismatch : them complete, us not mature\n'
# compare their originals to our keywords (inspired by)
our_keywords = our_entry['keywords']
# compare their originals to our keywords (inspired by) TODO inspired by is now separate field (Inspiration)
our_keywords = [x.value for x in our_entry['Keyword']]
if 'originals' in osgc_entry:
osgc_originals = osgc_entry['originals']
osgc_originals = [x.replace(',', '') for x in
@ -406,6 +411,7 @@ if __name__ == "__main__":
if not is_included:
# a new entry, that we have never seen, maybe we should make an entry of our own
# continue
# TODO we could use the write capabilities to write the entry in our own format, the hardcoded format here might be brittle, on the other hand we can also write slightly wrong stuff here without problems
if newly_created_entries >= maximal_newly_created_entries:
continue
@ -434,10 +440,6 @@ if __name__ == "__main__":
# add name
entry = '# {}\n\n'.format(osgc_name)
# add description
description = '{} of {}.'.format(game_type.capitalize(), ', '.join(osgc_entry['originals']))
entry += '_{}_\n\n'.format(description)
# home
home = osgc_entry.get('url', None)
entry += '- Home: {}\n'.format(home)
@ -476,7 +478,7 @@ if __name__ == "__main__":
osgc_content = ', '.join(osgc_content)
keywords.append(osgc_content)
if keywords:
entry += '- Keywords: {}\n'.format(', '.join(keywords))
entry += '- Keyword: {}\n'.format(', '.join(keywords))
# code repository (mandatory on our side)
repo = osgc_entry.get('repo', None)
@ -496,11 +498,15 @@ if __name__ == "__main__":
osgc_frameworks = osgc_entry['framework']
if type(osgc_frameworks) == str:
osgc_frameworks = [osgc_frameworks]
entry += '- Code dependencies: {}\n'.format(', '.join(osgc_frameworks))
entry += '- Code dependency: {}\n'.format(', '.join(osgc_frameworks))
# add description
description = '{} of {}.'.format(game_type.capitalize(), ', '.join(osgc_entry['originals']))
entry += '\n{}\n\n'.format(description)
# write info (if existing)
if 'info' in osgc_entry:
entry += '\n{}\n'.format(osgc_entry['info'])
entry += '\n{}\n\n'.format(osgc_entry['info'])
# write ## Building
entry += '\n## Building\n'
@ -512,10 +518,10 @@ if __name__ == "__main__":
# now iterate over our entries and test if we can add anything to them
print('entry that could be added to them')
for our_entry in our_entries:
our_name = our_entry['name']
our_name = our_entry['Title']
# only if contains a keyword starting with "inspired by" and not "tool", "framework" or "library"
our_keywords = our_entry['keywords']
our_keywords = our_entry['Keyword']
if not any([x.startswith('inspired by ') for x in our_keywords]):
continue
if any([x in ['tool', 'library', 'framework'] for x in our_keywords]):

View File

@ -165,6 +165,7 @@ Terra Reconstructed (https://sourceforge.net/projects/terrastrategy/, http://mor
Tesseract Trainer (http://www.mushware.com/): Sources lost, license unclear, very early development, long abandoned
The Fortress (https://sourceforge.net/projects/fortress/, https://fortressgame.wordpress.com/about/): Very early development, long abandoned
thromolusng (https://github.com/segfaulthunter/thromolusng.git): Very early development, not playable, no build instructions, abandoned since 2010
TinyEngine (https://github.com/weigert/TinyEngine): Not enough game related, very small
TinyXXXX (https://sites.google.com/view/arduino-collection/arduboy): For Arduino (unsupported platform here)
Tranzam (http://retrospec.sgn.net/game/tranzam, http://retrospec.sgn.net/download/files/TranzAm.1.1.zip): see other retrospec.sgn.net entries, license unclear, probably not open source as we want it
TunnelWars (http://www.ratajik.net/TunnelWars/): Platform is OS2, not interesting for us
@ -176,5 +177,6 @@ WarGame (https://archive.codeplex.com/?p=wargame): Unclear license, could not co
WolfenDoom (https://github.com/Realm667/WolfenDoom): All rights reserved
XQuest 2 (http://www.swallowtail.org/xquest/, http://www.swallowtail.org/xquest/xquest_1.3_src.tar.gz): License is not really open source (see LICENSE.DOC in https://web.archive.org/web/20170320015957/http://www.swallowtail.org/xquest/xquest_1.3_src.tar.gz)
xrick (http://www.bigorno.net/xrick): No open source license/unclear license (see file README in http://www.bigorno.net/xrick/xrick-021212.zip)
Yave (https://github.com/gan74/Yave): General graphics engine, not game centered in any way and experimental
Yuris Revenge (https://github.com/cookgreen/Yuris-Revenge): Mod to OpenRA
zedragon (https://github.com/charlierobson/zedragon.git): License not found, Assembly, not sure which OS is supported, no release, not much guidance

View File

@ -98,7 +98,7 @@ class EntryTransformer(lark.Transformer):
def start(self, x):
return x
# TODO turns out ValueWithComment does not really solve problem but actually creates even some, are there alternatives like inheriting from string?
class ValueWithComment:
"""
All our property values can have (optional) comments. This is the class that represents them to us and implements
@ -130,6 +130,8 @@ class ValueWithComment:
else:
return '{}'.format(self.value)
def __hash__(self):
return hash(self.value)
def parse(parser, transformer, content):
tree = parser.parse(content)