Où trouver le code source de vos jeux préférés — Aperçu du projet osgameclones
Parfois, vous voulez faire une pause dans vos tâches professionnelles, lancer un ancien projet en local et voir comment il fonctionne en interne. Mais trouver le code source de titres légendaires n'est pas chose aisée. La plupart sont protégés par le droit d'auteur, et leurs rouages sont enfermés dans les coffres-forts des entreprises. Cependant, la communauté crée des clones, des remakes et des moteurs open source depuis des décennies, ce qui permet de jouer aux classiques sur les systèmes modernes.
Le dépôt osgameclones est sans doute la base de données la plus complète de ce type de projets. Ce n'est pas simplement une liste de liens, mais un catalogue structuré maintenu par la communauté depuis plus de dix ans.
Pourquoi c'est utile pour les développeurs
Pour le gamedev, ce dépôt est comme un manuel d'anatomie. Si vous développez votre propre moteur ou que vous voulez simplement comprendre comment l'économie est implémentée dans les jeux de stratégie comme Settlers ou la physique dans les plateformes, vous pouvez trouver des exemples fonctionnels en C++, Python, Rust et même JavaScript.
Au-delà de l'apprentissage, le projet est utile pour ceux qui veulent contribuer à l'Open Source mais ne savent pas par où commencer. La base de données contient des centaines de jeux : des jeux d'arcade simples aux RPG massifs, et beaucoup d'entre eux ont constamment besoin de bras pour corriger des bugs ou porter vers de nouvelles plateformes.
Comment la base de données est organisée
Les auteurs du projet ont adopté une approche approfondie. Au lieu de tout mettre dans un immense README, ils utilisent des fichiers YAML pour stocker les données. Le dépôt contient deux dossiers principaux :
originals— contient des informations sur les jeux commerciaux originaux.games— contient les descriptions des clones et remakes avec des liens vers les dépôts, les sites officiels et l'état du développement.
Il est intéressant de noter que le projet dispose d'un schéma strict de validation des données via schema/games.yaml. Cela garantit qu'il n'y a pas de liens brisés ou de données incohérentes dans la base de données. Si vous voulez ajouter un jeu, votre PR passera par des vérifications automatisées via GitHub Actions.
Ce qu'il y a dans le catalogue
La base de données contient pratiquement tout :
- Des moteurs open source pour exécuter les ressources originales (par exemple, OpenMW pour Morrowind ou OpenRA pour Command & Conquer).
- Des clones complets avec leurs propres graphismes et sons.
- Des démos techniques qui ne présentent qu'une partie des mécaniques.
Le tri est alphabétique, mais il y a une exception pour ScummVM. C'est logique : ScummVM héberge tellement de jeux d'aventure qu'ils submergeraient simplement la liste principale.
Comment exécuter le site du projet en local
Si vous n'êtes pas à l'aise pour lire les fichiers YAML via l'interface GitHub, vous pouvez déployer le projet en local. Il utilise poetry pour la gestion des dépendances et le bon vieux make pour la construction.
Pour les amateurs de conteneurisation, Docker est disponible. La procédure de démarrage est standard : d'abord construire l'image, puis exécuter le serveur.
make docker-build
make docker-run PORT=3000
Après cela, le catalogue sera accessible à l'adresse localhost:3000. À l'intérieur du conteneur, un site statique s'exécute, généré à partir de ces fichiers YAML.
Comment aider le projet
Le projet repose sur les contributeurs. Si vous connaissez un cool clone de Diablo ou Dwarf Fortress qui n'est pas encore dans la liste, les auteurs suggèrent deux voies : remplir un formulaire sur le site web ou créer une Issue à partir d'un modèle. Mais la meilleure façon pour un développeur est d'éditer directement les fichiers dans les dossiers games ou originals et d'envoyer une Pull Request.
Au fait, le projet participe activement à Hacktoberfest, donc c'est une excellente occasion de gagner une réalisation pour votre profil tout en faisant quelque chose d'utile.
Le dépôt osgameclones est une mine d'or pour ceux qui aiment les jeux rétro et qui veulent explorer leur code. Il n'y a pas d'architecture complexe dans le projet lui-même (c'est juste un générateur de site statique Python), mais la valeur du contenu compense tout.
Qui devrait y jeter un œil :
- Les futurs concepteurs de jeux et développeurs de jeux pour étudier les mécaniques.
- Ceux qui cherchent un projet Open Source intéressant auquel contribuer.
- Les passionnés d'histoire du jeu vidéo.
Le projet ne cherche pas à « tuer » les jeux commerciaux, mais plutôt à préserver leur héritage grâce à l'open source. C'est agréable de voir la base de données tenue à jour depuis de nombreuses années.
Projets similaires