Waar vind je broncode voor je favoriete games — osgameclones Projectoverzicht
Soms wil je even pauzeren van werk, een ouderwets project lokaal opstarten en zien hoe het werkt. Maar het vinden van de broncode voor legendarische titels is geen sinecure. De meeste zijn beschermd door auteursrecht en hun interne werking is weggesloten in bedrijfskluizen. Toch creëert de community al decennia lang klonen, remakes en open-source engines, waardoor het mogelijk is om klassiekers op moderne systemen te draaien.
De osgameclones repository is misschien wel de meest uitgebreide database van dergelijke projecten. Het is niet zomaar een lijst met links, maar een gestructureerde catalogus die al meer dan tien jaar door de community wordt onderhouden.
Waarom dit nuttig is voor ontwikkelaars
Voor gamedev is deze repository als een anatomieboek. Als je je eigen engine schrijft of gewoon wilt begrijpen hoe economie wordt geïmplementeerd in strategiespellen zoals Settlers of fysica in platformers, kun je werkende voorbeelden vinden in C++, Python, Rust en zelfs JavaScript.
Naast leren is het project nuttig voor degenen die willen bijdragen aan Open Source maar niet weten waar te beginnen. De database bevat honderden games: van eenvoudige arcade-games tot enorme RPG's, en veel ervan hebben voortdurend hulp nodig voor bugfixes of het porten naar nieuwe platforms.
Hoe de database is georganiseerd
De projectauteurs hebben een grondige aanpak gekozen. In plaats van alles in één enorme README te dumpen, gebruiken ze YAML-bestanden om gegevens op te slaan. De repository heeft twee hoofd mappen:
originals— bevat informatie over originele commerciële games.games— bevat beschrijvingen van klonen en remakes met links naar repositories, officiële sites en ontwikkelingsstatus.
Interessant is dat het project een strikt datavalidatieschema heeft via schema/games.yaml. Dit zorgt ervoor dat er geen gebroken links of rommel in de database zitten. Als je een game wilt toevoegen, wordt je PR gecontroleerd via geautomatiseerde checks via GitHub Actions.
Wat er in de catalogus staat
De database bevat vrijwel alles:
- Open-source engines voor het draaien van originele assets (bijvoorbeeld OpenMW voor Morrowind of OpenRA voor Command & Conquer).
- Complete klonen met eigen graphics en geluid.
- Technische demos die alleen een deel van de mechanieken展示eren.
Sortering is alfabetisch, maar er is een uitzondering voor ScummVM. Dat is logisch: ScummVM herbergt zoveel adventure-games dat ze de hoofd lijst simpelweg zouden overspoelen.
Hoe het projectsite lokaal uit te voeren
Als je je niet prettig voelt bij het lezen van YAML-bestanden via de GitHub-interface, kun je het project lokaal deployen. Het gebruikt poetry voor dependency management en het goede oude make voor het bouwen.
Voor containerisatie-liefhebbers is Docker beschikbaar. De opstartprocedure is standaard: bouw eerst de image en voer dan de server uit.
make docker-build
make docker-run PORT=3000
Daarna is de catalogus toegankelijk op localhost:3000. Binnen de container draait een statische site, gegenereerd uit die YAML-bestanden.
Hoe je het project kunt helpen
Het project leeft van bijdragers. Als je een coole kloon van Diablo of Dwarf Fortress kent die nog niet op de lijst staat, suggereren de auteurs twee mogelijkheden: een formulier invullen op de website of een Issue aanmaken vanuit een template. Maar de beste manier voor een ontwikkelaar is om direct de bestanden in de games of originals mappen te bewerken en een Pull Request te sturen.
Overigens neemt het project actief deel aan Hacktoberfest, dus het is een geweldige kans om een achievement te verdienen voor je profiel terwijl je iets nuttigs doet.
De osgameclones repository is een goudmijn voor degenen die van retrogames houden en in hun code willen duiken. Er zit geen complexe architectuur in het project zelf (het is gewoon een Python static site generator), maar de waarde van de content maakt alles goed.
Wie zou een kijkje moeten nemen:
- Aspirant-gameontwerpers en gameontwikkelaars voor het bestuderen van mechanieken.
- Degenen die op zoek zijn naar een interessant Open Source project om aan bij te dragen.
- Videogamegeschiedenis-liefhebbers.
Het project probeert niet om commerciële games te 'doden', maar helpt eerder om hun erfgoed te behouden via open source. Het is fijn om te zien dat de database al jaren wordt bijgewerkt.
Gerelateerde projecten