Wo du den Quellcode deiner Lieblingsspiele findest — osgameclones-Projektübersicht
Manchmal möchte man eine Pause von Arbeitsaufgaben machen, ein altes Projekt lokal starten und sehen, wie es unter der Haube funktioniert. Aber den Quellcode für legendäre Titel zu finden ist keine leichte Aufgabe. Die meisten sind durch Urheberrecht geschützt, und ihre Interna sind in Unternehmensgewölben eingeschlossen. Die Community erstellt jedoch seit Jahrzehnten Klone, Remakes und Open-Source-Engines, die es ermöglichen, Klassiker auf modernen Systemen auszuführen.
Das osgameclones-Repository ist arguably die umfassendste Datenbank solcher Projekte. Es ist nicht nur eine Liste von Links, sondern ein strukturierter Katalog, der seit über zehn Jahren von der Community gepflegt wird.
Warum das für Entwickler nützlich ist
Für die Spieleentwicklung ist dieses Repository wie ein Anatomie-Lehrbuch. Wenn du deine eigene Engine schreibst oder einfach verstehen möchtest, wie die Wirtschaft in Strategiespielen wie Die Siedler implementiert ist oder die Physik in Plattformern, kannst du funktionierende Beispiele in C++, Python, Rust und sogar JavaScript finden.
Über das Lernen hinaus ist das Projekt für diejenigen nützlich, die zu Open Source beitragen möchten, aber nicht wissen, wo sie anfangen sollen. Die Datenbank enthält Hunderte von Spielen: von einfachen Arcade-Spielen bis hin zu massiven RPGs, und viele von ihnen brauchen ständig helfende Hände für Fehlerbehebungen oder Portierungen auf neue Plattformen.
Wie die Datenbank organisiert ist
Die Projektautoren haben einen gründlichen Ansatz verfolgt. Anstatt alles in eine große README zu packen, verwenden sie YAML-Dateien zur Datenspeicherung. Das Repository hat zwei Hauptordner:
originals— enthält Informationen über originale kommerzielle Spiele.games— enthält Beschreibungen von Klonen und Remakes mit Links zu Repositories, offiziellen Seiten und Entwicklungsstatus.
Interessanterweise verfügt das Projekt über ein strenges Datenvaildierungsschema über schema/games.yaml. Dies stellt sicher, dass es keine defekten Links oder Müll in der Datenbank gibt. Wenn du ein Spiel hinzufügen möchtest, wird dein PR durch automatisierte Prüfungen über GitHub Actions geleitet.
Was sich im Katalog befindet
Die Datenbank hat praktisch alles:
- Open-Source-Engines zum Ausführen originaler Assets (zum Beispiel OpenMW für Morrowind oder OpenRA für Command & Conquer).
- Vollständige Klone mit eigenen Grafiken und Sound.
- Technische Demos, die nur einen Teil der Mechanik zeigen.
Die Sortierung ist alphabetisch, aber es gibt eine Ausnahme für ScummVM. Das macht Sinn: ScummVM hostet so viele Adventure-Spiele, dass sie die Hauptliste einfach überfordern würden.
So führst du die Projektseite lokal aus
Wenn du dich nicht wohl fühlst, YAML-Dateien über die GitHub-Oberfläche zu lesen, kannst du das Projekt lokal bereitstellen. Es verwendet Poetry für die Abhängigkeitsverwaltung und das gute alte make zum Erstellen.
Für Containerisierungs-Enthusiasten ist Docker verfügbar. Das Startverfahren ist Standard: zuerst das Image erstellen, dann den Server ausführen.
make docker-build
make docker-run PORT=3000
Anschließend ist der Katalog unter localhost:3000 erreichbar. Innerhalb des Containers läuft eine statische Website, die aus diesen YAML-Dateien generiert wird.
So hilfst du dem Projekt
Das Projekt lebt von Mitwirkenden. Wenn du einen coolen Klon von Diablo oder Dwarf Fortress kennst, der noch nicht auf der Liste steht, schlagen die Autoren zwei Wege vor: ein Formular auf der Website ausfüllen oder ein Issue aus einer Vorlage erstellen. Aber der beste Weg für einen Entwickler ist, direkt die Dateien im games- oder originals-Ordner zu bearbeiten und einen Pull Request zu senden.
Übrigens nimmt das Projekt aktiv am Hacktoberfest teil, also ist es eine großartige Gelegenheit, eine Auszeichnung für dein Profil zu verdienen, während du etwas Nützliches tust.
Das osgameclones-Repository ist eine Goldgrube für diejenigen, die Retro-Spiele lieben und in ihren Code eintauchen möchten. Es gibt keine komplexe Architektur im Projekt selbst (es ist nur ein Python-Generator für statische Websites), aber der Wert des Inhalts macht alles wett.
Für wen lohnt sich ein Blick:
- Aufstrebende Spieldesigner und Spieleentwickler zum Studieren von Mechaniken.
- Diejenigen, die ein interessantes Open-Source-Projekt suchen, zu dem sie beitragen können.
- Enthusiasten der Videospielgeschichte.
Das Projekt versucht nicht, kommerzielle Spiele zu "töten", sondern bewahrt ihr Erbe durch Open Source. Es ist schön zu sehen, dass die Datenbank seit vielen Jahren aktuell gehalten wird.
Ähnliche Projekte