diff --git a/README.md b/README.md index d024ec22..348f5c17 100644 --- a/README.md +++ b/README.md @@ -3,14 +3,14 @@ **[Dynamic HTML table](https://trilarion.github.io/opensourcegames/)** of the entries / Development **[Blog](https://trilarion.blogspot.com/search/label/osgames)** / **[Statistics](statistics.md#statistics)** [comment]: # (start of autogenerated content, do not edit) -- **[All](games/_all.md#All)** (518) -- **[Action](games/_action.md#action)** (69) +- **[All](games/_all.md#All)** (519) +- **[Action](games/_action.md#action)** (70) - **[Arcade](games/_arcade.md#arcade)** (10) - **[Adventure](games/_adventure.md#adventure)** (14) - **[Visual novel](games/_visual-novel.md#visual-novel)** (4) - **[Sports](games/_sports.md#sports)** (8) - **[Platform](games/_platform.md#platform)** (2) -- **[Puzzle](games/_puzzle.md#puzzle)** (18) +- **[Puzzle](games/_puzzle.md#puzzle)** (19) - **[Role playing](games/_role-playing.md#role-playing)** (118) - **[Simulation](games/_simulation.md#simulation)** (33) - **[Strategy](games/_strategy.md#strategy)** (168) diff --git a/docs/data.json b/docs/data.json index 0f3e1691..c5e349c8 100644 --- a/docs/data.json +++ b/docs/data.json @@ -14,7 +14,7 @@ "Link", "beta / active", "real time, strategy", - "Source - C++ - GPL-2.0" + "Source - C, C++ - GPL-2.0" ], [ "2048 (home, entry)", @@ -2800,6 +2800,14 @@ "tool", "Source - Pascal - GPL-2.0" ], + [ + "Rabbit Escape (home, entry)", + "Puzzle/action game of rescuing rabbits, inspired by..", + "Link", + "beta / active", + "action, puzzle", + "Source - Java - GPL-2.0" + ], [ "Radakan (home, entry)", "Single player RPG game, set in a dark fantasy setting..", diff --git a/games/0ad.md b/games/0ad.md index a01aa455..9efa3fe9 100644 --- a/games/0ad.md +++ b/games/0ad.md @@ -8,11 +8,16 @@ _0 A.D. is a free, open-source, cross-platform real-time strategy game._ - Download: https://play0ad.com/download/ - Keywords: real time, strategy - Code repository: https://github.com/0ad/0ad.git (mirror), https://svn.wildfiregames.com/public/ps/trunk/ (svn) -- Code language: C++ +- Code language: C, C++ - Code license: GPL-2.0 +- Code dependencies: SDL2, OpenAL, libvorbis, libogg, libxml2, zlib +- Assets license: CC-BY-SA-3.0 ## Building +- Build system: Custom +- Build instructions: https://trac.wildfiregames.com/wiki/BuildInstructions + See [instructions](https://trac.wildfiregames.com/wiki/GettingStartedProgrammers) Has solution files for MSVC 2015, might also use premake. diff --git a/games/2048.md b/games/2048.md index b9c9514f..1347a6e4 100644 --- a/games/2048.md +++ b/games/2048.md @@ -13,3 +13,4 @@ _Sliding block puzzle game._ ## Building +- Build system: Rake \ No newline at end of file diff --git a/games/3d_city.md b/games/3d_city.md index ddb0c1a3..8506f163 100644 --- a/games/3d_city.md +++ b/games/3d_city.md @@ -8,6 +8,8 @@ _WebGL version of micropolisJS._ - Keywords: simulation - Code repository: https://github.com/lo-th/3d.city.git - Code language: JavaScript -- Code license: GPL-3.0 +- Code license: GPL-3.0 (with additional terms) ## Building + +- Build system: Custom (Python script) diff --git a/games/_action.md b/games/_action.md index 6b99d90c..426c52dd 100644 --- a/games/_action.md +++ b/games/_action.md @@ -46,6 +46,7 @@ - **[OpenLieroX](openlierox.md)** (C++, LGPL, mature) - **[PainTown](paintown.md)** (C++, Java, Python, 3-clause BSD, mature) - **[Pang Zero](pang_zero.md)** (Perl, GPL-2.0, beta, inactive since 2007) +- **[Rabbit Escape](rabbit_escape.md)** (Java, GPL-2.0, beta) - **[Red Eclipse](red_eclipse.md)** (C++, zlib, mature) - **[Rocks'n'Diamonds ](rocks_and_diamonds.md)** (C, GPL-2.0, mature) - **[SDL Asylum](sdl_asylum.md)** (C, GPL-3.0, mature, inactive since 2009) diff --git a/games/_all.md b/games/_all.md index 896381e8..02e07bdc 100644 --- a/games/_all.md +++ b/games/_all.md @@ -1,7 +1,7 @@ [comment]: # (autogenerated content, do not edit) # All -- **[0 A.D.](0ad.md)** (C++, GPL-2.0, beta) +- **[0 A.D.](0ad.md)** (C, C++, GPL-2.0, beta) - **[2048](2048.md)** (Javascript, MIT, mature) - **[3d.city](3d_city.md)** (JavaScript, GPL-3.0, mature, inactive since 2016) - **[A Planet's Revenge](a_planets_revenge.md)** (Python, GPL-3.0, beta, inactive since 2008) @@ -350,6 +350,7 @@ - **[Quad-engine](quad.md)** (Pascal, MIT, beta) - **[REGoth](regoth.md)** (C++, GPL-3.0, beta) - **[RPDungeon - computer aided role playing](rpdungeon.md)** (Pascal, GPL-2.0, beta, inactive since 2006) +- **[Rabbit Escape](rabbit_escape.md)** (Java, GPL-2.0, beta) - **[Radakan](radakan.md)** (Python, Custom, beta, inactive since 2014) - **[Ragel](ragel.md)** (C++, MIT, mature) - **[Rails: an 18xx game system](rails_18xx.md)** (Java, GPL-2.0, mature) diff --git a/games/_puzzle.md b/games/_puzzle.md index 4d35f871..e523320a 100644 --- a/games/_puzzle.md +++ b/games/_puzzle.md @@ -16,6 +16,7 @@ - **[KAtomic](katomic.md)** (C++, GPL-2.0, mature) - **[Me and My Shadow](me_and_my_shadow.md)** (C++, GPL-3.0, beta) - **[Pingus](pingus.md)** (C++, GPL-3.0, mature) +- **[Rabbit Escape](rabbit_escape.md)** (Java, GPL-2.0, beta) - **[Secret Mario Chronicles](secret_mario_chronicles.md)** (C++, GPL-3.0, mature, inactive since 2009) - **[TetraVex](tetravex.md)** (Swift, GPL-3.0, beta) - **[kiki the nano bot](kiki_the_nano_bot.md)** (?, ?, mature, inactive since 2007) \ No newline at end of file diff --git a/games/_strategy.md b/games/_strategy.md index cd81e188..d1ac29b9 100644 --- a/games/_strategy.md +++ b/games/_strategy.md @@ -1,7 +1,7 @@ [comment]: # (autogenerated content, do not edit) # Strategy -- **[0 A.D.](0ad.md)** (C++, GPL-2.0, beta) +- **[0 A.D.](0ad.md)** (C, C++, GPL-2.0, beta) - **[A Planet's Revenge](a_planets_revenge.md)** (Python, GPL-3.0, beta, inactive since 2008) - **[AI Wars](ai_wars.md)** (Python, MIT, beta, inactive since 2010) - **[Advanced Strategic Command](asc.md)** (C++, GPL-2.0, mature) diff --git a/games/a_planets_revenge.md b/games/a_planets_revenge.md index 27b8a423..ec7df4d6 100644 --- a/games/a_planets_revenge.md +++ b/games/a_planets_revenge.md @@ -9,6 +9,7 @@ _A text-based, turn-based strategy game set in space. It is similar to a 4X game - Code repository: https://gitlab.com/osgames/aplanetsrevenge.git (copy of last source release) - Code language: Python - Code license: GPL-3.0 +- Code dependencies: curses ## Building diff --git a/games/ai_wars.md b/games/ai_wars.md index 8fc177d6..f281aa07 100644 --- a/games/ai_wars.md +++ b/games/ai_wars.md @@ -8,6 +8,7 @@ _Turn-based strategy game, an AI client development testbed._ - Code repository: https://github.com/suprafun/aiwars.git, https://code.google.com/archive/p/aiwars/source - Code language: Python - Code license: MIT +- Code dependencies: pygame, pillow ## Building diff --git a/games/ardentryst.md b/games/ardentryst.md index d9251603..084f2043 100644 --- a/games/ardentryst.md +++ b/games/ardentryst.md @@ -9,7 +9,7 @@ _Action/RPG sidescroller, focused not just on fighting, but on story, and charac - Code repository: https://github.com/hhirsch/ardentryst.git - Code language: Python - Code license: GPL-3.0 -- Code dependencies: PyGame +- Code dependencies: pygame ## Building diff --git a/games/brain_workshop.md b/games/brain_workshop.md index 4693f846..cf52ce21 100644 --- a/games/brain_workshop.md +++ b/games/brain_workshop.md @@ -10,6 +10,7 @@ _Dual n-back brain training exercise._ - Code repository: https://svn.code.sf.net/p/brainworkshop/code/ (svn) - Code language: Python - Code license: GPL +- Code dependencies: pyglet ## Building diff --git a/games/cabbages_and_kings.md b/games/cabbages_and_kings.md index abc5978f..c9b6e455 100644 --- a/games/cabbages_and_kings.md +++ b/games/cabbages_and_kings.md @@ -8,7 +8,7 @@ _Mix between action and rpg._ - Code repository: https://github.com/Mekire/cabbages-and-kings.git - Code language: Python - Code license: MIT -- Code dependencies: Pygame +- Code dependencies: pygame, wxPython ## Building diff --git a/games/celestron.md b/games/celestron.md index f5e9cc53..8cf44129 100644 --- a/games/celestron.md +++ b/games/celestron.md @@ -9,7 +9,7 @@ _Top-down space shooter in the legacy of Chromium BSU._ - Code repository: https://git.code.sf.net/p/celestron/code - Code language: Python - Code license: GPL-3.0 -- Code dependencies: Pygame, Numpy +- Code dependencies: pygame, Numpy (GPU?) ## Building diff --git a/games/childsplay.md b/games/childsplay.md index 1f5f5858..5935caab 100644 --- a/games/childsplay.md +++ b/games/childsplay.md @@ -10,6 +10,7 @@ _Collection of educational activities for young children._ - Code repository: https://git.code.sf.net/p/childsplay/git, https://svn.code.sf.net/p/childsplay/code/ (svn), http://childsplay.cvs.sourceforge.net (cvs), https://git.code.sf.net/p/schoolsplay/code, https://svn.code.sf.net/p/schoolsplay/code-0/ (svn) - Code language: Python - Code license: GPL-3.0 +- Code dependencies: pygame, Numpy ## Building diff --git a/games/dragon_hunt.md b/games/dragon_hunt.md index eb15852f..6bed0533 100644 --- a/games/dragon_hunt.md +++ b/games/dragon_hunt.md @@ -9,7 +9,7 @@ _Role-playing game designed to be flexible and fun._ - Code repository: https://gitlab.com/osgames/dragon-hunt.git (backup of cvs), http://savannah.nongnu.org/cvs/?group=dragon-hunt (cvs) - Code language: Python - Code license: GPL-2.0 -- Code dependencies: PyGame +- Code dependencies: pygame See also https://github.com/evilmrhenry/dragon_hunt diff --git a/games/fallen_spire.md b/games/fallen_spire.md index 8fad5367..632a137a 100644 --- a/games/fallen_spire.md +++ b/games/fallen_spire.md @@ -8,7 +8,7 @@ _RPG adventure game written in PyGame._ - Code repository: https://github.com/BGCX067/fallenspire-svn-to-git.git, https://code.google.com/archive/p/fallenspire/source/default/source - Code language: Python - Code license: GPL-3.0 -- Code dependencies: PyGame, https://code.google.com/archive/p/pgu/ +- Code dependencies: pygame (and https://code.google.com/archive/p/pgu/) ## Building diff --git a/games/fujo.md b/games/fujo.md index b63f82db..014db2ef 100644 --- a/games/fujo.md +++ b/games/fujo.md @@ -9,7 +9,7 @@ _Fairly classical roguelike, but with animated graphics._ - Code repository: https://bitbucket.org/thesheep/fujo/src (hg), https://gitlab.com/osgames/fujo.git (+) - Code language: Python - Code license: CC BY-SA 4.0 -- Code dependencies: Pygame +- Code dependencies: pygame - Assets license: CC BY-SA 4.0 ## Building diff --git a/games/galaxymage_redux.md b/games/galaxymage_redux.md index 4b67f18a..60839923 100644 --- a/games/galaxymage_redux.md +++ b/games/galaxymage_redux.md @@ -8,7 +8,7 @@ _Attempt to revitalize the open source game, GalaxyMage with a fresh codebase._ - Code repository: https://github.com/LibreGamesArchive/galaxymageredux.git, https://code.google.com/archive/p/galaxymageredux/source - Code language: Python - Code license: GPL-2.0 -- Code dependencies: PyGame +- Code dependencies: pygame ## Building diff --git a/games/microwar_2.md b/games/microwar_2.md index 55c26375..53c5ee03 100644 --- a/games/microwar_2.md +++ b/games/microwar_2.md @@ -10,7 +10,7 @@ _'Space Invaders' style arcade game in the world of micro-compter industry._ - Code repository: (see download) - Code language: Python - Code license: 3-clause BSD -- Code dependencies: Pygame +- Code dependencies: pygame ## Building diff --git a/games/monstrosity.md b/games/monstrosity.md index 6ca900ed..3f293965 100644 --- a/games/monstrosity.md +++ b/games/monstrosity.md @@ -9,7 +9,7 @@ _Slay monsters, cast spells and collect keys to escape an 8-level dungeon in thi - Code repository: https://gitlab.com/osgames/monstrosity.git (sources from website plus license) - Code language: Python - Code license: MIT (repository) -- Code dependencies: PyGame +- Code dependencies: pygame - Assets license: Custom (music with permission by Tom Murphy) ## Building diff --git a/games/pyorpg.md b/games/pyorpg.md index 6cc49e0a..9bf030f6 100644 --- a/games/pyorpg.md +++ b/games/pyorpg.md @@ -8,7 +8,7 @@ _ORPG (online role-playing-game) engine that allows everyone to create their own - Code repository: https://github.com/marcusmoller/pyorpg-client.git, https://github.com/marcusmoller/pyorpg-server.git (+) - Code language: Python - Code license: MIT -- Code dependencies: PyGame +- Code dependencies: pygame Is this an engine or a game? diff --git a/games/rabbit_escape.md b/games/rabbit_escape.md new file mode 100644 index 00000000..46565f66 --- /dev/null +++ b/games/rabbit_escape.md @@ -0,0 +1,18 @@ +# Rabbit Escape + +_Puzzle/action game of rescuing rabbits, inspired by Lemmings and Pingus._ + +- Home: https://www.artificialworlds.net/rabbit-escape/ +- State: beta +- Download: https://www.artificialworlds.net/rabbit-escape/#install +- Platform: Windows, Linux, macOS, Android +- Keywords: action, puzzle +- Code repository: https://github.com/andybalaam/rabbit-escape.git +- Code language: Java +- Code license: GPL-2.0 +- Assets license: CC-BY-SA-3.0 (music, levels under GPL-2.0) + +## Building + +- Build system: Custom (shell script) + diff --git a/games/sentient_storage.md b/games/sentient_storage.md index fce7fda2..374451b9 100644 --- a/games/sentient_storage.md +++ b/games/sentient_storage.md @@ -9,7 +9,7 @@ _Point & Click adventure!_ - Code repository: https://github.com/blakeohare/pyweek-sentientstorage.git - Code language: Python - Code license: Public Domain -- Code dependencies: Pygame +- Code dependencies: pygame ## Building diff --git a/games/story_of_a_lost_sky.md b/games/story_of_a_lost_sky.md index 9e3c556f..1a3f9559 100644 --- a/games/story_of_a_lost_sky.md +++ b/games/story_of_a_lost_sky.md @@ -9,7 +9,7 @@ _Turn Based Strategy RPG with gameplay that is similar to Fire Emblem._ - Code repository: https://bitbucket.org/featheredmelody/lost-sky-project-public/src (hg), https://gitlab.com/osgames/lost-sky.git (+) - Code language: Python - Code license: 3-clause BSD -- Code dependencies: PyGame +- Code dependencies: pygame ## Building diff --git a/games/the_bubs_brothers.md b/games/the_bubs_brothers.md index e6c89505..e52d9341 100644 --- a/games/the_bubs_brothers.md +++ b/games/the_bubs_brothers.md @@ -10,7 +10,7 @@ _Networked clone of the classical Bubble Bobble board game._ - Code repository: http://bub-n-bros.cvs.sourceforge.net (cvs) - Code language: Python - Code license: MIT -- Code dependencies: Pygame +- Code dependencies: pygame ## Building diff --git a/games/uidunad.md b/games/uidunad.md index 958e78d6..41fc85ac 100644 --- a/games/uidunad.md +++ b/games/uidunad.md @@ -8,7 +8,7 @@ _Ultimate Dungeon Adventure (UlDunAd) - the extremely flexible, fun, text/graphi - Code repository: https://github.com/nhydock/UlDunAd.git - Code language: Python - Code license: GPL-3.0 -- Code dependencies: PyGame +- Code dependencies: pygame ## Building diff --git a/games/wizards_magic.md b/games/wizards_magic.md index 2d5d4694..9b2cb71b 100644 --- a/games/wizards_magic.md +++ b/games/wizards_magic.md @@ -10,7 +10,7 @@ _Simple card strategy, based on Magic: The Gathering rules._ - Code repository: https://github.com/chubakur/wizards-magic.git, https://github.com/chubakur/wizards-magic2.git (+), https://code.google.com/archive/p/wizards-magic/source - Code language: Python - Code license: GPL-2.0 -- Code dependencies: PyGame +- Code dependencies: pygame ## Building diff --git a/statistics.md b/statistics.md index dd0e12ec..ec9f9c6f 100644 --- a/statistics.md +++ b/statistics.md @@ -1,13 +1,13 @@ [comment]: # (autogenerated content, do not edit) # Statistics -analyzed 518 entries on 2019-07-08 13:44:36 +analyzed 519 entries on 2019-07-08 16:49:09 ## State -- mature: 337 (65.1%) -- beta: 181 (34.9%) -- inactive: 230 (44.4%) +- mature: 337 (64.9%) +- beta: 182 (35.1%) +- inactive: 230 (44.3%) ##### Inactive State @@ -17,15 +17,15 @@ Blobby Volley 2 (2017), Eat The Whistle (2017), PokerTH (2017), Scrolling Game D ##### Language frequency -- C++ (36.6%) -- C (19.9%) -- Java (10.7%) +- C++ (36.5%) +- C (20.0%) +- Java (10.9%) - Python (9.4%) - Lua (4.7%) - JavaScript (2.9%) - Pascal (2.8%) - C# (2.3%) -- PHP (2.0%) +- PHP (1.9%) - ? (1.5%) - Javascript (0.8%) - Haxe (0.5%) @@ -61,11 +61,11 @@ Blobby Volley 2 (2017), Eat The Whistle (2017), PokerTH (2017), Scrolling Game D ##### Licenses frequency -- GPL-2.0 (37.5%) -- GPL-3.0 (24.9%) +- GPL-2.0 (37.6%) +- GPL-3.0 (24.8%) - MIT (10.9%) - Custom (4.4%) -- ? (3.3%) +- ? (3.2%) - Apache-2.0 (2.5%) - 3-clause BSD (2.1%) - GPL (2.1%) @@ -100,9 +100,9 @@ Blobby Volley 2 (2017), Eat The Whistle (2017), PokerTH (2017), Scrolling Game D ##### Keywords frequency -- strategy (19.2%) -- role playing (13.5%) -- action (7.9%) +- strategy (19.1%) +- role playing (13.4%) +- action (8.0%) - framework (6.7%) - simulation (3.8%) - turn-based (3.5%) @@ -110,10 +110,10 @@ Blobby Volley 2 (2017), Eat The Whistle (2017), PokerTH (2017), Scrolling Game D - roguelike (2.6%) - library (2.5%) - remake (2.4%) -- massive multiplayer online (2.1%) -- puzzle (2.1%) -- requires original content (2.1%) -- shooter (2.1%) +- puzzle (2.2%) +- massive multiplayer online (2.0%) +- requires original content (2.0%) +- shooter (2.0%) - online (1.9%) - tool (1.7%) - adventure (1.6%) @@ -205,23 +205,25 @@ Blobby Volley 2 (2017), Eat The Whistle (2017), PokerTH (2017), Scrolling Game D ## Build systems -Build systems information available for 22.2% of all projects. +Build systems information available for 22.9% of all projects. -##### Build systems frequency (115) +##### Build systems frequency (119) -- CMake (66.1%) -- Autoconf (17.4%) -- Make (5.2%) -- Scons (3.5%) -- Gradle (2.6%) +- CMake (63.9%) +- Autoconf (16.8%) +- Make (5.0%) +- Scons (3.4%) +- Custom (2.5%) +- Gradle (2.5%) - Ant (1.7%) - Maven (1.7%) -- Lazarus project (0.9%) -- Xcode project (0.9%) +- Lazarus project (0.8%) +- Rake (0.8%) +- Xcode project (0.8%) -##### C and C++ projects without build system information (212) +##### C and C++ projects without build system information (211) -0 A.D., Aeron, Aleph One: Marathon, Angband, Antares, Armagetron Advanced, Armies, Atlantis, Atomic Tanks, Atomiks, Atomix, Attal: Lords of doom, AutoREALM, Avanor, Ballerburg, Battle Tanks, Battles of Antargis, Biniax, Birth of the Empires, Blobby Volley 2, Blobwars: Metal Blob Solid, Bombermaaan, Boost (C++ Libraries), Bos Wars, Boson, Brutal Chess, Call to Power 2, Cat Mother Dead Justice, Cataclysm, Catch Challenger, Classic Blades of Exile, Clou!, Colonization too, Conquests, Crossfire, Crown and Cutlass, Crypto++, Daimonin, Danger from the Deep, Dark Oberon, Dawn, DeSmuME, Deliantra, Duel Commander, Dune Dynasty, Dune Legacy, Dungeon Craft, Dungeon Crawl Stone Soup, Dungeon Mapper, ENIGMA, Endless Sky, Epiar, Erebus, Eternal Lands, Evol Online, Exult, Fanwor, Free Space Colonization, Free heroes2 engine, Free in the Dark (engine), Freedink, Freeminer, Freestars, GDash, GLtron, GM Tools, GalaxyNG, GameLV, Gee Whiz, GemRB, Gigalomania, Globulation2, Goblin Camp, Goblin Hack, Golly , Greenius' Civil War, Grobots, H-World, Harris, Haxima, Heroes of Wesnoth, Hex Game, Holyspirit, Irrlicht Engine, Iter Vehemens ad Necem, Jagged Alliance 2 Stracciatella, KAtomic, KQ Lives, LGames, LGeneral, LZMA SDK, Labyrinth of Worlds, Libxml2, Lightweight Java Game Library, LinCity, LinCity-NG, Linley's Dungeon Crawl, Linwarrior 3D, Lips of Suna, Lua, Lumix Engine, M.E.W.L., Machinations, Mars, Land of No Mercy, MechCommander 2 Omnitech, Mega Mario, Meridian 59, Meritous, Micropolis, Moria, NLarn, Naev, NetHack, NetPanzer, NetStatsBaseball, Neverball, Oolite, Open AL, Open Apocalypse, Open Dune, Open Meridian, Open RPG Maker, Open Sonic, Open Yahtzee, Open Zelda, OpenArena, OpenCity, OpenHoMM, OpenMW, OpenPop, OpenSSL, Openglad, Operation Citadel, Orx, Other-Life, Panda 3D, Pax Britannica, Phantasy Star Rebirth, Pioneers, Pizza Business, PlaneShift, PokerTH, Pthreads-win32, Qt, REGoth, Ragel, Red Eclipse, Return to the Roots, Rocks'n'Diamonds , Rogue Clone IV, Rolisteam, S.C.O.U.R.G.E., SDL Asylum, SDL Game Engine 2D, SDL Sopwith, SWIG, Scorched 3D, Secret Mario Chronicles, Sengoku: Warring States of Japan, Seven Kingdoms: Ancient Adversaries, SimuTrans, Slash'EM, Smash Battle, Song of Albion, SpaceZero, Star Ruler 2, StarBlastrix , Summoning Wars, SuperTuxKart, T-Bots, TORCS, The Open Racing Car Simulator, Tales of Maj'Eyal, Tenes Empanadas Graciela, The Clans, The Endless Dungeons, The Epic of Heroes, The Legend of Edgar, Thousand Parsec, TinTin++, Tremulous, Turious, Tux Racer, TwinEngine, UFO2000, UnNetHack, Underworld Adventures, VCMI Project, Vega Strike, War Of Kingdom, Wargamer, Wargus, Witch Blast, Wolfpack Empire, WorldForge, Wyrmsun, X-Moto, XArchon, XPilot, XSera, XZ Utils, Xconq, Xenowar, Xonotic, ZAngband, libGDX, libpng, micropolisJS, pkg-config, pygame, sandbox Game Maker, wxWidgets, xdigger +Aeron, Aleph One: Marathon, Angband, Antares, Armagetron Advanced, Armies, Atlantis, Atomic Tanks, Atomiks, Atomix, Attal: Lords of doom, AutoREALM, Avanor, Ballerburg, Battle Tanks, Battles of Antargis, Biniax, Birth of the Empires, Blobby Volley 2, Blobwars: Metal Blob Solid, Bombermaaan, Boost (C++ Libraries), Bos Wars, Boson, Brutal Chess, Call to Power 2, Cat Mother Dead Justice, Cataclysm, Catch Challenger, Classic Blades of Exile, Clou!, Colonization too, Conquests, Crossfire, Crown and Cutlass, Crypto++, Daimonin, Danger from the Deep, Dark Oberon, Dawn, DeSmuME, Deliantra, Duel Commander, Dune Dynasty, Dune Legacy, Dungeon Craft, Dungeon Crawl Stone Soup, Dungeon Mapper, ENIGMA, Endless Sky, Epiar, Erebus, Eternal Lands, Evol Online, Exult, Fanwor, Free Space Colonization, Free heroes2 engine, Free in the Dark (engine), Freedink, Freeminer, Freestars, GDash, GLtron, GM Tools, GalaxyNG, GameLV, Gee Whiz, GemRB, Gigalomania, Globulation2, Goblin Camp, Goblin Hack, Golly , Greenius' Civil War, Grobots, H-World, Harris, Haxima, Heroes of Wesnoth, Hex Game, Holyspirit, Irrlicht Engine, Iter Vehemens ad Necem, Jagged Alliance 2 Stracciatella, KAtomic, KQ Lives, LGames, LGeneral, LZMA SDK, Labyrinth of Worlds, Libxml2, Lightweight Java Game Library, LinCity, LinCity-NG, Linley's Dungeon Crawl, Linwarrior 3D, Lips of Suna, Lua, Lumix Engine, M.E.W.L., Machinations, Mars, Land of No Mercy, MechCommander 2 Omnitech, Mega Mario, Meridian 59, Meritous, Micropolis, Moria, NLarn, Naev, NetHack, NetPanzer, NetStatsBaseball, Neverball, Oolite, Open AL, Open Apocalypse, Open Dune, Open Meridian, Open RPG Maker, Open Sonic, Open Yahtzee, Open Zelda, OpenArena, OpenCity, OpenHoMM, OpenMW, OpenPop, OpenSSL, Openglad, Operation Citadel, Orx, Other-Life, Panda 3D, Pax Britannica, Phantasy Star Rebirth, Pioneers, Pizza Business, PlaneShift, PokerTH, Pthreads-win32, Qt, REGoth, Ragel, Red Eclipse, Return to the Roots, Rocks'n'Diamonds , Rogue Clone IV, Rolisteam, S.C.O.U.R.G.E., SDL Asylum, SDL Game Engine 2D, SDL Sopwith, SWIG, Scorched 3D, Secret Mario Chronicles, Sengoku: Warring States of Japan, Seven Kingdoms: Ancient Adversaries, SimuTrans, Slash'EM, Smash Battle, Song of Albion, SpaceZero, Star Ruler 2, StarBlastrix , Summoning Wars, SuperTuxKart, T-Bots, TORCS, The Open Racing Car Simulator, Tales of Maj'Eyal, Tenes Empanadas Graciela, The Clans, The Endless Dungeons, The Epic of Heroes, The Legend of Edgar, Thousand Parsec, TinTin++, Tremulous, Turious, Tux Racer, TwinEngine, UFO2000, UnNetHack, Underworld Adventures, VCMI Project, Vega Strike, War Of Kingdom, Wargamer, Wargus, Witch Blast, Wolfpack Empire, WorldForge, Wyrmsun, X-Moto, XArchon, XPilot, XSera, XZ Utils, Xconq, Xenowar, Xonotic, ZAngband, libGDX, libpng, micropolisJS, pkg-config, pygame, sandbox Game Maker, wxWidgets, xdigger ##### C and C++ projects with a build system different from CMake (75) @@ -229,13 +231,13 @@ Allegro, Annchienta, Arx Libertatis, Astromenace, Atrinik, Battle for Wesnoth, B ## Platform -Platform information available for 50.8% of all projects. +Platform information available for 51.4% of all projects. ##### Platforms frequency -- Windows (36.9%) -- Linux (33.1%) -- macOS (22.4%) -- Android (6.8%) -- Browser (0.8%) +- Windows (36.7%) +- Linux (33.0%) +- macOS (22.5%) +- Android (7.1%) +- Browser (0.7%) diff --git a/tools/archives.json b/tools/archives.json index c0cc3dfd..5ad1d346 100644 --- a/tools/archives.json +++ b/tools/archives.json @@ -166,6 +166,7 @@ "https://github.com/alphaonex86/CatchChallenger.git", "https://github.com/anael-seghezzi/Maratis-4.git", "https://github.com/andrettin/wyrmsun.git", + "https://github.com/andybalaam/rabbit-escape.git", "https://github.com/angband/angband.git", "https://github.com/antionio/game-off-2013.git", "https://github.com/anttisalonen/kingdoms.git", diff --git a/tools/list_python_external_imports.py b/tools/list_python_external_imports.py new file mode 100644 index 00000000..fd42876c --- /dev/null +++ b/tools/list_python_external_imports.py @@ -0,0 +1,85 @@ +""" +Where no requirements.txt or setup.py or other information is given, get an idea of the external dependencies +by parsing the Python files and looking for import statements. +""" + +import re +from utils.utils import * + + +def local_module(module_base, file_path, module): + """ + + """ + module = module.split('.') + module[-1] += '.py' + pathA = os.path.join(module_base, *module) + pathB = os.path.join(file_path, *module) + return os.path.exists(pathA) or os.path.exists(pathB) + +if __name__ == "__main__": + + system_libraries = {'__builtin__', '.', '..', '*', 'array', 'os', 'copy', 'codecs', 'collections', 'cPickle', 'datetime', 'decimal', 'email', + 'io', 'math', 'md5', 'operator', 'random', 're', 'sha', 'shutil', 'smtplib', 'socket', 'string', 'struct', 'subprocess', + 'sys', 'thread', 'threading', 'time', 'traceback', 'types', 'urllib', 'urllib2', 'yaml', 'yaml3', 'zlib'} + regex_import = re.compile(r"^\s*import (.*)", re.MULTILINE) + regex_from = re.compile(r"^\s*from (.*) import (.*)", re.MULTILINE) + regex_comment = re.compile(r"(#.*)$", re.MULTILINE) + regex_as = re.compile(r"(as.*)$", re.MULTILINE) + + # modify these locations + root_folder = r'' + module_base = r'' + + # get all *.py files below the root_folder + files = [] + for dirpath, dirnames, filenames in os.walk(root_folder): + filenames = [x for x in filenames if x.endswith('.py') or x.endswith('.pyw')] + if filenames: + filenames = [os.path.join(dirpath, x) for x in filenames] + files.extend(filenames) + print('found {} files'.format(len(files))) + + # iterate over all these files + imports = [] + for file in files: + + # get file path + file_path = os.path.split(file)[0] + + # read file content + content = read_text(file) + + # remove comments + content = regex_comment.sub('', content) + + # remove as clauses + content = regex_as.sub('', content) + + # search for "import .." statements + matches = regex_import.findall(content) + + for match in matches: + modules = match.split(',') # split if more + for module in modules: + module = module.strip() + if not local_module(module_base, file_path, module): + imports.append(module) + + # search for "from .. import .." statements + matches = regex_from.findall(content) + + for match in matches: + module = match[0] # only the from part + module = module.strip() + if not local_module(module_base, file_path, module): + imports.append(module) + + # throw out duplicates + imports = list(set(imports) - system_libraries) + + # sort + imports.sort() + + # display + print('\n'.join(imports))