more autogenerated info on category pages
This commit is contained in:
parent
ac7e911b08
commit
0edab10b12
@ -11,13 +11,15 @@ See also the list of [popular games on Github](https://github.com/leereilly/game
|
|||||||
|
|
||||||
## Contents
|
## Contents
|
||||||
|
|
||||||
|
[comment]: # (start of autogenerated content, do not edit)
|
||||||
- [Adventure games & Visual novels](adventure/_toc.md) (8)
|
- [Adventure games & Visual novels](adventure/_toc.md) (8)
|
||||||
- [Game frameworks](framework/_toc.md) (44)
|
- [Game frameworks](framework/_toc.md) (44)
|
||||||
- [Popular required libraries](library/_toc.md) (19)
|
- [Popular required libraries](library/_toc.md) (20)
|
||||||
- [Role Playing Games](rpg/_toc.md) (7)
|
- [Role Playing Games](rpg/_toc.md) (7)
|
||||||
- [Simulation games](simulation/_toc.md) (8)
|
- [Simulation games](simulation/_toc.md) (8)
|
||||||
- [Strategy games](strategy/_toc.md) (29)
|
- [Strategy games](strategy/_toc.md) (29)
|
||||||
|
|
||||||
|
[comment]: # (end of autogenerated content)
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
If you'd like to add something, please [create an Issue](https://github.com/Trilarion/opensourcegames/issues),
|
If you'd like to add something, please [create an Issue](https://github.com/Trilarion/opensourcegames/issues),
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
# Adventure games & Visual novels
|
# Adventure games & Visual novels
|
||||||
|
|
||||||
- [AdaVenture](adaventure.md)
|
[comment]: # (start of autogenerated content, do not edit)
|
||||||
- [Clou!](clou.md)
|
- [AdaVenture](adaventure.md) Ada, GPL-3.0, stable
|
||||||
- [Colossal Cave Adventure](colossal_cave.md)
|
- [Clou!](clou.md) C, alpha
|
||||||
- [Dragon History](dragon_history.md)
|
- [Colossal Cave Adventure](colossal_cave.md) Python, Apache-2.0, mature
|
||||||
- [Free in the Dark (engine)](fitd.md)
|
- [Dragon History](dragon_history.md) GPL, mature
|
||||||
- [GameLV](gamelv.md)
|
- [Free in the Dark (engine)](fitd.md) C, C++, GPL-2.0, beta
|
||||||
- [Solaris the Game](solaris.md)
|
- [GameLV](gamelv.md) C++, GPL, beta
|
||||||
- [TwinEngine](twin_engine.md)
|
- [Solaris the Game](solaris.md) beta
|
||||||
|
- [TwinEngine](twin_engine.md) C, GPL-2.0
|
||||||
|
|
||||||
|
[comment]: # (end of autogenerated content)
|
@ -1,46 +1,49 @@
|
|||||||
# Game frameworks
|
# Game frameworks
|
||||||
|
|
||||||
- [Arianne / Marauroa](arianne.md)
|
[comment]: # (start of autogenerated content, do not edit)
|
||||||
- [Blender game engine](blender_game_engine.md)
|
- [Arianne / Marauroa](arianne.md) Java, GPL-2.0, mature
|
||||||
- [COCOS2D-X](cocos2dx.md)
|
- [Blender game engine](blender_game_engine.md) C++, GPL-2.0, mature
|
||||||
- [Dash Engine](dash.md)
|
- [COCOS2D-X](cocos2dx.md) C++, MIT, mature
|
||||||
- [Delta Engine](deltaengine.md)
|
- [Dash Engine](dash.md) D, MIT
|
||||||
- [ENIGMA](enigma.md)
|
- [Delta Engine](deltaengine.md) C#, Apache-2.0
|
||||||
- [EasyRPG Player](easyrpgplayer.md)
|
- [ENIGMA](enigma.md) C++, C, GPL-3.0, mature
|
||||||
- [Flare Engine](flare_engine.md)
|
- [EasyRPG Player](easyrpgplayer.md) C++, GPL-3.0
|
||||||
- [Flixel](flixel.md)
|
- [Flare Engine](flare_engine.md) C++, GPL-3.0
|
||||||
- [GemRB](gemrb.md)
|
- [Flixel](flixel.md) ActionScript, MIT, mature
|
||||||
- [Godot](godot.md)
|
- [GemRB](gemrb.md) C++, Python, GPL-2.0, mature
|
||||||
- [HaxeFlixel](haxeflixel.md)
|
- [Godot](godot.md) C, C++, MIT, mature
|
||||||
- [Irrlicht Engine](irrlicht.md)
|
- [HaxeFlixel](haxeflixel.md) Haxe, MIT, mature
|
||||||
- [Lightweight Java Game Library](lwjgl.md)
|
- [Irrlicht Engine](irrlicht.md) C++, C, zlib, mature
|
||||||
- [Lumix Engine](lumix.md)
|
- [Lightweight Java Game Library](lwjgl.md) Kotlin, C, BSD-3, mature
|
||||||
- [LÖVE](loeve.md)
|
- [Lumix Engine](lumix.md) C++, MIT, beta
|
||||||
- [Maratis](maratis.md)
|
- [LÖVE](loeve.md) C++, zlib, mature
|
||||||
- [MonoGame](monogame.md)
|
- [Maratis](maratis.md) C++, GPL-2.0, experimental (4.x)
|
||||||
- [O.H.R.RPG.C.E](ohrrpgce.md)
|
- [MonoGame](monogame.md) C#, Ms-MPL MIT, mature
|
||||||
- [OGRE3D](ogre3d.md)
|
- [O.H.R.RPG.C.E](ohrrpgce.md) Basic, GPL-2.0, mature
|
||||||
- [Octaforge](octaforge.md)
|
- [OGRE3D](ogre3d.md) C++, MIT, mature
|
||||||
- [Open RPG Maker](openrpgmaker.md)
|
- [Octaforge](octaforge.md) C++, [University of Illinois/NCSA Open Source License](https://github.com/OctaForge/OF-Engine/blob/master/COPYING.md), mature
|
||||||
- [OpenFL](openfl.md)
|
- [Open RPG Maker](openrpgmaker.md) alpha, inactive since 2014
|
||||||
- [OpenRPG](openrpg.md)
|
- [OpenFL](openfl.md) Haxe, MIT, mature
|
||||||
- [Orx](orx.md)
|
- [OpenRPG](openrpg.md) Java, Python, inactive since 2013
|
||||||
- [Panda 3D](panda3d.md)
|
- [Orx](orx.md) C, zlib, mature
|
||||||
- [Polycode](polycode.md)
|
- [Panda 3D](panda3d.md) C++, C, BSD-3, mature
|
||||||
- [Qt](qt.md)
|
- [Polycode](polycode.md) C, C++, MIT, beta
|
||||||
- [Quad-engine](quad.md)
|
- [Qt](qt.md) C++, LGPL, mature
|
||||||
- [SDL Game Engine 2D](sge2d.md)
|
- [Quad-engine](quad.md) Delphi, MIT, beta
|
||||||
- [ScummVM](scummvm.md)
|
- [SDL Game Engine 2D](sge2d.md) C, MIT, beta
|
||||||
- [Solarus](solarus.md)
|
- [ScummVM](scummvm.md) C++, GPL-2.0, mature
|
||||||
- [Superpowers](superpowers.md)
|
- [Solarus](solarus.md) C++, GPL-3.0, mature
|
||||||
- [Urho3D](urho3d.md)
|
- [Superpowers](superpowers.md) Typescript, ISC
|
||||||
- [Vega Strike](vegastrike.md)
|
- [Urho3D](urho3d.md) C++, Angelscript, MIT, mature
|
||||||
- [WorldForge](worldforge.md)
|
- [Vega Strike](vegastrike.md) C++, GPL-2.0, mature
|
||||||
- [ZGameEditor](zgameeditor.md)
|
- [WorldForge](worldforge.md) C++, GPL-2.0, mature
|
||||||
- [jMonkeyEngine](jmonkeyengine.md)
|
- [ZGameEditor](zgameeditor.md) Pascal, MIT, mature
|
||||||
- [libGDX](libgdx.md)
|
- [jMonkeyEngine](jmonkeyengine.md) Java, BSD, mature
|
||||||
- [mkxp](mkxp.md)
|
- [libGDX](libgdx.md) Java, C++, C, Apache-2.0, mature
|
||||||
- [pygame](pygame.md)
|
- [mkxp](mkxp.md) C++, C, GPL-2.0
|
||||||
- [rpge](rpge.md)
|
- [pygame](pygame.md) C, Python, LGPL, mature
|
||||||
- [sandbox Game Maker](sandboxgamemaker.md)
|
- [rpge](rpge.md) C, GPL-3.0, beta, inactive since 2014
|
||||||
- [xoreos](xoreos.md)
|
- [sandbox Game Maker](sandboxgamemaker.md) C++, C, MIT, ZLIB modified (requires special credits and notifications)
|
||||||
|
- [xoreos](xoreos.md) C++, GPL-3.0
|
||||||
|
|
||||||
|
[comment]: # (end of autogenerated content)
|
@ -1,21 +1,25 @@
|
|||||||
# Popular required libraries
|
# Popular required libraries
|
||||||
|
|
||||||
- [Allegro](allegro.md)
|
[comment]: # (start of autogenerated content, do not edit)
|
||||||
- [Boost (C++ Libraries)](boost.md)
|
- [Allegro](allegro.md) C, zlib, mature
|
||||||
- [Crypto++](crypto.md)
|
- [Boost (C++ Libraries)](boost.md) C++, [BSL-1.0](https://github.com/boostorg/boost/blob/master/LICENSE_1_0.txt), mature
|
||||||
- [FreeType](freetype.md)
|
- [Crypto++](crypto.md) C++, Boost-1.0
|
||||||
- [HarfBuzz](harfbuzz.md)
|
- [FreeType](freetype.md) C, GPL, mature
|
||||||
- [LZMA SDK](lzma.md)
|
- [HarfBuzz](harfbuzz.md) C++, MIT, mature
|
||||||
- [Libxml2](libxml2.md)
|
- [LZMA SDK](lzma.md) C, LGPL-2.0, mature
|
||||||
- [Lua](lua.md)
|
- [Libxml2](libxml2.md) C, MIT, mature
|
||||||
- [Open AL](openal.md)
|
- [Lua](lua.md) C, MIT, mature
|
||||||
- [Open AL Soft](openalsoft.md)
|
- [Open AL](openal.md) Proprietary since v1.1, LGPL before
|
||||||
- [OpenSSL](openssl.md)
|
- [Open AL Soft](openalsoft.md) C, LGPL-2.0
|
||||||
- [Pthreads-win32](pthreads_win32.md)
|
- [OpenSSL](openssl.md) C, [Dual licensed under special licenses](https://github.com/openssl/openssl/blob/master/LICENSE), mature
|
||||||
- [Ragel](ragel.md)
|
- [Pthreads-win32](pthreads_win32.md) C, LGPL-2.1, mature
|
||||||
- [Simple DirectMedia Layer](sdl_2.md)
|
- [Ragel](ragel.md) C++, MIT, mature
|
||||||
- [Simple and Fast Multimedia Library](sfml.md)
|
- [SWIG](swig.md) C++, [Special](https://raw.githubusercontent.com/swig/swig/master/LICENSE), mature
|
||||||
- [XZ Utils](xz.md)
|
- [Simple DirectMedia Layer](sdl_2.md) zlib, mature
|
||||||
- [libpng](libpng.md)
|
- [Simple and Fast Multimedia Library](sfml.md) C++, zlib (core), mature
|
||||||
- [yaml-cpp](yaml_cpp.md)
|
- [XZ Utils](xz.md) C, Different, see file Copying, liblzma is public domain, mature
|
||||||
- [zlib](zlib.md)
|
- [libpng](libpng.md) C, [libpng](https://sourceforge.net/p/libpng/code/ci/master/tree/LICENSE), mature
|
||||||
|
- [yaml-cpp](yaml_cpp.md) C++, MIT
|
||||||
|
- [zlib](zlib.md) C, zlib, mature
|
||||||
|
|
||||||
|
[comment]: # (end of autogenerated content)
|
@ -13,6 +13,40 @@ def read_first_line_from_file(file):
|
|||||||
line = f.readline()
|
line = f.readline()
|
||||||
return line
|
return line
|
||||||
|
|
||||||
|
def read_interesting_info_from_file(file):
|
||||||
|
"""
|
||||||
|
Parses a file for some interesting fields and concatenates the content
|
||||||
|
"""
|
||||||
|
with open(file, 'r') as f:
|
||||||
|
text = f.read()
|
||||||
|
|
||||||
|
output = [None, None, None]
|
||||||
|
|
||||||
|
# language
|
||||||
|
regex = re.compile(r"- Language\(s\): (.*)")
|
||||||
|
matches = regex.findall(text)
|
||||||
|
if matches:
|
||||||
|
output[0] = matches[0]
|
||||||
|
|
||||||
|
# license
|
||||||
|
regex = re.compile(r"- License: (.*)")
|
||||||
|
matches = regex.findall(text)
|
||||||
|
if matches:
|
||||||
|
output[1] = matches[0]
|
||||||
|
|
||||||
|
# state
|
||||||
|
regex = re.compile(r"- State: (.*)")
|
||||||
|
matches = regex.findall(text)
|
||||||
|
if matches:
|
||||||
|
output[2] = matches[0]
|
||||||
|
|
||||||
|
output = [x for x in output if x] # eliminate empty entries
|
||||||
|
|
||||||
|
output = " " + ", ".join(output)
|
||||||
|
|
||||||
|
return output
|
||||||
|
|
||||||
|
|
||||||
def update_readme():
|
def update_readme():
|
||||||
"""
|
"""
|
||||||
Recounts entries in subcategories and writes them to the readme
|
Recounts entries in subcategories and writes them to the readme
|
||||||
@ -59,7 +93,7 @@ def update_readme():
|
|||||||
update = "".join(update)
|
update = "".join(update)
|
||||||
|
|
||||||
# insert new text in the middle
|
# insert new text in the middle
|
||||||
text = start + update + end
|
text = start + "[comment]: # (start of autogenerated content, do not edit)\n" + update + "\n[comment]: # (end of autogenerated content)" + end
|
||||||
|
|
||||||
# write to readme
|
# write to readme
|
||||||
with open(readme_path, 'w') as f:
|
with open(readme_path, 'w') as f:
|
||||||
@ -88,18 +122,21 @@ def update_category_tocs():
|
|||||||
# get titles (discarding first two ("# ") and last ("\n") characters)
|
# get titles (discarding first two ("# ") and last ("\n") characters)
|
||||||
titles = [read_first_line_from_file(path)[2:-1] for path in paths]
|
titles = [read_first_line_from_file(path)[2:-1] for path in paths]
|
||||||
|
|
||||||
|
# get more interesting info
|
||||||
|
more = [read_interesting_info_from_file(path) for path in paths]
|
||||||
|
|
||||||
# combine name and file name
|
# combine name and file name
|
||||||
info = zip(titles, files)
|
info = zip(titles, files, more)
|
||||||
|
|
||||||
# sort according to title
|
# sort according to title
|
||||||
info.sort(key=lambda x:x[0])
|
info.sort(key=lambda x:x[0])
|
||||||
|
|
||||||
# assemble output
|
# assemble output
|
||||||
update = ['- [{}]({})\n'.format(*entry) for entry in info]
|
update = ['- [{}]({}){}\n'.format(*entry) for entry in info]
|
||||||
update = "".join(update)
|
update = "".join(update)
|
||||||
|
|
||||||
# combine toc header
|
# combine toc header
|
||||||
text = toc_header + '\n' + update
|
text = toc_header + '\n' + "[comment]: # (start of autogenerated content, do not edit)\n" + update + "\n[comment]: # (end of autogenerated content)"
|
||||||
|
|
||||||
# write to toc file
|
# write to toc file
|
||||||
with open(toc_file, 'w') as f:
|
with open(toc_file, 'w') as f:
|
||||||
|
17
rpg/_toc.md
17
rpg/_toc.md
@ -1,9 +1,12 @@
|
|||||||
# Role Playing Games
|
# Role Playing Games
|
||||||
|
|
||||||
- [Arx Libertatis](arx_libertatis.md)
|
[comment]: # (start of autogenerated content, do not edit)
|
||||||
- [BrowserQuest](browserquest.md)
|
- [Arx Libertatis](arx_libertatis.md) C++, GPL-3.0, mature
|
||||||
- [Crossfire](crossfire.md)
|
- [BrowserQuest](browserquest.md) Javascript, MPL-2.0, matures
|
||||||
- [Egoboo](egoboo.md)
|
- [Crossfire](crossfire.md) C, Java, GPL-2.0
|
||||||
- [FreedroidRPG](freedroid.md)
|
- [Egoboo](egoboo.md) C++, C, GPL-3.0, mature, inactive since 2015
|
||||||
- [Hero of Allacrost](allacrost.md)
|
- [FreedroidRPG](freedroid.md) C, GPL-2.0, mature
|
||||||
- [VegaTrek](vegatrek.md)
|
- [Hero of Allacrost](allacrost.md) C++, Lua, GPL-2.0, stable
|
||||||
|
- [VegaTrek](vegatrek.md) GPL-2.0, beta, inactive since 2013
|
||||||
|
|
||||||
|
[comment]: # (end of autogenerated content)
|
@ -1,10 +1,13 @@
|
|||||||
# Simulation games
|
# Simulation games
|
||||||
|
|
||||||
- [3d.city](3d_city.md)
|
[comment]: # (start of autogenerated content, do not edit)
|
||||||
- [LinCity](lincity.md)
|
- [3d.city](3d_city.md) Javascript, GPL-3.0
|
||||||
- [LinCity-NG](lincity_ng.md)
|
- [LinCity](lincity.md) C, GPL-2.0, mature, inactice since 2005
|
||||||
- [Micropolis](micropolis.md)
|
- [LinCity-NG](lincity_ng.md) C++, GPL, alpha
|
||||||
- [Open Transport Tycoon](open_transport_tycoon.md)
|
- [Micropolis](micropolis.md) HTML, C++, Java, Python, GPL-3.0, mature
|
||||||
- [OpenCity](open_city.md)
|
- [Open Transport Tycoon](open_transport_tycoon.md) C++, GPL-2.0, mature
|
||||||
- [Pioneer](pioneer.md)
|
- [OpenCity](open_city.md) C++, GPL-2.0, alpha
|
||||||
- [micropolisJS](micropolis_js.md)
|
- [Pioneer](pioneer.md) C++, C, GPL and others, mature
|
||||||
|
- [micropolisJS](micropolis_js.md) HTML, C++, Java, Python, GPL-3.0
|
||||||
|
|
||||||
|
[comment]: # (end of autogenerated content)
|
@ -1,31 +1,34 @@
|
|||||||
# Strategy games
|
# Strategy games
|
||||||
|
|
||||||
- [0AD](0ad.md)
|
[comment]: # (start of autogenerated content, do not edit)
|
||||||
- [Advanced Strategic Command](asc.md)
|
- [0AD](0ad.md) C++, GPL-2.0, alpha
|
||||||
- [Battle for Wesnoth](wesnoth.md)
|
- [Advanced Strategic Command](asc.md) C++, GPL-2.0, mature
|
||||||
- [Birth of the Empires](birth_of_the_empires.md)
|
- [Battle for Wesnoth](wesnoth.md) C++, GPL-2.0, mature
|
||||||
- [C-evo](c_evo.md)
|
- [Birth of the Empires](birth_of_the_empires.md) C++, Private use allowed (original artwork under special license)
|
||||||
- [Crimson Fields](crimson_fields.md)
|
- [C-evo](c_evo.md) Delphi Pascal, None found, mature, inactive since 2013
|
||||||
- [Free Orion](freeorion.md)
|
- [Crimson Fields](crimson_fields.md)
|
||||||
- [FreeCol](freecol.md)
|
- [Free Orion](freeorion.md) C++, Python, GPL-2.0, beta
|
||||||
- [FreeRails](freerails.md)
|
- [FreeCol](freecol.md) Java 8, GPL-2.0, mature
|
||||||
- [Freeciv](freeciv.md)
|
- [FreeRails](freerails.md) Java, alpha
|
||||||
- [Freeciv WebGL](freeciv_web.md)
|
- [Freeciv](freeciv.md) C, GPL-2.0, mature
|
||||||
- [Glest](glest.md)
|
- [Freeciv WebGL](freeciv_web.md) Javascript, Java, AGPL-3.0, mature
|
||||||
- [Globulation2](globulation2.md)
|
- [Glest](glest.md) C++, GPL-2.0, mature, inactive since 2009
|
||||||
- [LordsAWar!](lordsawar.md)
|
- [Globulation2](globulation2.md) C++, GPL-3.0, mature
|
||||||
- [MegaGlest](megaglest.md)
|
- [LordsAWar!](lordsawar.md) C++, GPL-3.0, stable
|
||||||
- [Megamek](megamek.md)
|
- [MegaGlest](megaglest.md) C++, GPL-2.0, mature
|
||||||
- [NetPanzer](netpanzer.md)
|
- [Megamek](megamek.md) Java, GPL-2.0, mature
|
||||||
- [Open Imperium Galactica](open_imperium_galactica.md)
|
- [NetPanzer](netpanzer.md) C++, GPL-2.0, beta
|
||||||
- [OpenRA](openra.md)
|
- [Open Imperium Galactica](open_imperium_galactica.md) Java, GPL-3.0, beta
|
||||||
- [OpenXcom](openxcom.md)
|
- [OpenRA](openra.md) C#, GPl-3.0, mature
|
||||||
- [Pax Britannica](pax_britannica.md)
|
- [OpenXcom](openxcom.md) C++, GPL-3.0, mature
|
||||||
- [Spring RTS engine](spring.md)
|
- [Pax Britannica](pax_britannica.md) Lua, C, MIT, mature
|
||||||
- [Star Control II: The Ur-Quan Masters](star_control_2.md)
|
- [Spring RTS engine](spring.md) C++, C, Lua, GPL-2.0, mature
|
||||||
- [TripleA](triplea.md)
|
- [Star Control II: The Ur-Quan Masters](star_control_2.md) C, GPL-2.0, mature, inactive since 2011
|
||||||
- [UFO2000](ufo2000.md)
|
- [TripleA](triplea.md) Java, GPL-2.0, mature
|
||||||
- [Ufo: Alien Invasion](ufo_alien_invasion.md)
|
- [UFO2000](ufo2000.md) C++, GPL-2.0
|
||||||
- [Warzone 2100](warzone_2100.md)
|
- [Ufo: Alien Invasion](ufo_alien_invasion.md) C, C++, GPL-2.0, mature
|
||||||
- [Widelands](widelands.md)
|
- [Warzone 2100](warzone_2100.md) C++
|
||||||
- [Xconq](xconq.md)
|
- [Widelands](widelands.md) C++, Lua, GPL-2.0, mature
|
||||||
|
- [Xconq](xconq.md) GPL, mature
|
||||||
|
|
||||||
|
[comment]: # (end of autogenerated content)
|
Loading…
x
Reference in New Issue
Block a user