additions from backlog, issues, osgameclones
This commit is contained in:
@ -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",
|
||||
|
@ -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§ion=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/
|
||||
|
@ -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]):
|
||||
|
@ -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
|
@ -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)
|
||||
|
Reference in New Issue
Block a user