Über ScummVM

From ScummVM :: Wiki
< About
Revision as of 17:44, 12 July 2014 by SimSaw (talk | contribs)
Jump to navigation Jump to search
Languages Sprache: English  • Deutsch • français • italiano

Kurzbeschreibung

ScummVM ist ein Programm, welches es Ihnen ermöglicht, bestimmte klassische Grafik-Adventures (überwiegend aus dem Point-and-Click-Bereich) zu spielen, vorausgesetzt, Sie sind im Besitz der Dateien des Spieles. Das Schlaue daran ist: ScummVM ersetzt lediglich die Funktion der ausführbaren Dateien, die mit den Spielen kamen, was ermöglicht, diese Spiele auf Systemen zu spielen, für welche sie nie erstellt wurden!

Für weitere Informationen über die Macher können Sie die ScummVM-Geschichte oder die Steckbriefe über die Entwickler lesen.

Eine genauere Beschreibung

Die innere Funktionsweise eines Adventures

Fast alle Adventures teilen einige gemeinsame Eigenschaften. Die am meisten zugrunde liegenden sind die Ressourcen, die verwendet werden, welche in den Dateien des Spieles sind:

  • Grafiken
    • Darsteller (die Grafikobjekte im Spiel)
    • Hintergrundbilder
    • Schriftarten
    • Animationen im Spiel
    • Objekte
    • Videos
  • Ton
    • Künstlich erzeugte Musik (z. B. MIDI)
    • Geräusche
    • Sprachausgabe

Abgesehen von den Ressourcen haben fast alle Spiele ihre eigene Skriptsprache. Dies vereinfacht Dinge im gesamten Entwicklungsprozess, da es dann einfacher ist, Aufgaben an bestimmte Personen zu übertragen. Programmierer beschäftigen sich mit dem Code selbst, Spiele-Entwickler beschäftigen sich damit, Skripte in der Sprache zu schreiben, die der Spiel-Interpreter versteht, Grafik-Entwickler beschäftigen sich mit dem künstlerischen Teil des Spieles, Musik-Komponisten mit Audio usw. Obwohl die Grundelemente jedes Spieles Standard sind, integriert diese jedes Spiel auf eine sehr andere Weise. Der wichtigste Aspekt von Adventures ist die Art und Weise, wie sie „hinter den Kulissen“ funktionieren, was die Art der verwendeten Logik einschließt und wie diese in jedes Spiel integriert ist, die Sorte der Interaktionen, die vom Benutzer erwartet werden (z. B. erlauben einige Spiele die Verwendung von Verben an Objekten wie „Benutze Objekt 1 mit Objekt 2“, wohingegen andere Spiele nur einen Klick auf Objekte ermöglichen). Die Ressourcen selbst sind ohne die Spiellogik überhaupt nicht hilfreich, die der schwierigste Teil ist, der sich in ein Spiel integrieren lässt. In der Tat gibt es viele Ressourcen-Anzeigeprogramme, die man verwenden kann, um die Ressourcen von einer großen Anzahl verschiedener Spiele zu betrachten, aber sie beschäftigen sich gar nicht mit der Logik hinter diesen Ressourcen. Eine kurze Einführung dazu, wie Spiellogik in jedem Spiel funktioniert, wird im nächsten Teil gegeben.

Die Skriptsprache eines Spieles

Wie zuvor erwähnt, verwendet jedes Spiel seine eigene Skriptsprache, die gewöhnlich in den Dateien des Spieles enthalten ist. Diese ist normalerweise auf höherer Ebene und der Spiel-Interpreter selbst (die ausführbare Datei des Spieles) ist verantwortlich dafür, die Skriptbefehle aus den Spiellogik-Skripten zu verarbeiten und die ganze eigentliche Arbeit zu leisten. Hier ist ein Beispielskript einer hypothetischen Engine, in welchem das Spiel eine Szene laden und einen Fall behandeln müsste, in welchem der Benutzer den Gegenstand A aufnehmen würde:

 starteSzene(1)
 lade_die_Darsteller()
 positioniere_Darsteller(Darstellernummer, X, Y)
 ...
 positioniere_Objekt(Objektnummer, X, Y)
 ...
 wenn (Aktion_ist_Nehmen) {
   wenn (aufzunehmendes_Objekt() == Objekt_A) {
     Darsteller_läuft_zu(X,Y)
     Darsteller_macht_Aktion(Aktionsnummer)
     lege_Objekt_ins_Inventar(Objekt_A)
     entferne_Objekt_aus_Szene(Objekt_A)
   }
 }
   
 während (Szene_nicht_beendet) {
   verarbeite_Aktionen_des_Darstellers()
 }
 beendeSzene()


Das ist nur ein Beispiel dafür, wie eine Engine eine solche Aktion tätigen würde, aber jede Engine neigt dazu, solche Skripte auf verschiedene Weise auszuführen (z. B. haben einige Engines Skripte für jedes Objekt, andere können ein allgemeines Skript haben, um alles zu tun usw.).


Ein Spielskript kann grundlegende Elemente der Spiellogik enthalten (z. B. if (falls), else (sonst), goto (gehe zu) usw.) und kann direkt Funktionen von der ausführbaren Datei selbst aufrufen, die man als „Skriptbefehlscode“ bezeichnet.

Wo kommt ScummVM ins Spiel?

ScummVM ist ein Projekt, in welchem versucht wird, den Code aus der originalen ausführbaren Datei eines bestimmten Spieles neu zu schreiben, wobei auf den Original-Quellcode des Spieles zurückgegriffen wird oder Techniken des Reverse Engineerings angewandt werden, um den Code zu sehen, der sich in dieser ursprünglichen ausführbaren Datei befindet. Der Code wird dann in C++ neu geschrieben. Das bedeutet, dass die ausführbare Datei von ScummVM als Ersatz für die ursprüngliche Datei des Spieles verwendet werden kann, aber natürlich werden die Spieldateien (Grafiken, Audio, Spielskripte usw.) benötigt, um das Spiel zu spielen. Daher ist ScummVM KEIN Emulator eines speziellen Betriebssystems, wie es z. B. DOSBox für DOS ist. ScummVM ist eigentlich ein komplett neu geschriebenes Programm aus der Engine jedes unterstützten Spieles, was viele Vorteile mit sich bringt:

  • Die Spiele laufen auf vielen verschiedenen Plattformen dank ScummVMs portierbarem Plattform-Unterbau.
  • Spielgrafiken können durch die Anwendung verschiedener Grafikfilter verbessert werden (einschließlich super2xsai, supereagle, advmame2x, advmame3x, hq2x, hq3x und weitere).
  • Einige Fehler, die in der ursprünglichen ausführbaren Datei des Spieles (oder speziellen Skripten) auftraten, können beseitigt werden.
  • Es ist möglich, die Audio-Dateien der Spiele in bekannte Formate zu komprimieren, wie z. B. MP3, Vorbis oder FLAC, sodass das Spiel selbst viel weniger Speicherplatz benötigt.
  • Spiele von LucasArts haben ein viel besseres Menü und die Spielstände werden besser verwaltet.
  • Die meisten Engines erlauben dem Spieler, viel mehr Speicherstände zu erstellen, als der ursprüngliche Interpreter zuließ.
  • In einigen Spielen bietet ScummVM zusätzliche Funktionen, die in der ursprünglichen ausführbaren Datei nicht vorhanden waren. Z. B. wird in einigen älteren AGI-Spielen eine Maus unterstützt, obwohl diese im Original nicht unterstützt wurde.
  • Es ist möglich, die MT-32-Musik eines unterstützten Spieles anzuhören (falls vorhanden), ohne überhaupt einen MT-32 zu besitzen. Diese Musik wird dann über ein künstliches System emuliert.
  • ScummVM benötigt viel weniger Prozessorleistung und Systemressourcen als ein Emulator, da die Spiel-Engines mit ScummVM auf die verwendete Plattform portiert wurden und somit die ursprüngliche Plattform nicht emuliert werden muss (die einen anderen Prozessor, eine andere Speicherverwaltung usw. hat).

... und vieles mehr.

Die Herangehensweise beim Implementieren eines Spieles unter ScummVM weist ein paar Nachteile auf:

  • Da das System jedes Spieles von Grund auf neu geschrieben wurde, kann es in ScummVM einige Fehler geben, die im ursprünglichen Interpreter nicht vorhanden waren. Für diesen Fall gibt es einen Bug Tracker für ScummVM, in welchem Benutzer festgestellte Fehler dem ScummVM-Team auf Englisch melden können, die dann für gewöhnlich beseitigt werden. Sicherlich existieren solche Probleme, da es unmöglich ist, jeden einzeln Aspekt eines Spieles zu überprüfen, und vollständiges Neuschreiben einer Spiel-Engine bedeutet, dass es Sachverhalte geben kann, von denen der Entwickler ursprünglich nichts wusste. Deshalb wird für kein Spiel in der Kompatibilitätsliste 100 % Unterstützung angegeben, selbst wenn keine Fehler bekannt sein sollten. Spiele, deren Engines durch Reverse-Engineering erstellt wurden, erhalten maximal 95 %. In den Fällen, wo der ursprüngliche Quelltext zur Verfügung stand, sind 98 % das Maximum.

... und vielleicht noch weitere.

Unterstützte Spiele

Um zu sehen, welche Spiele in ScummVM unterstützt werden, können Sie die Kompatibilitätsseite einsehen. Die Spiel-Engines, die ScummVM momentan beinhaltet, kann man auf der Spiel-Engines-Seite sehen und der Status jedes Spieles kann auf den entsprechenden Unterseiten betrachten werden.

Auf welchen Plattformen läuft ScummVM?

Sehen Sie auf unserer Plattformen-Seite nach.

Spiele zum Laufen bringen

Was benötige ich, um ein Spiel zum Laufen zu bringen?

Sie benötigen die Dateien der Original-Spiele, die Sie spielen möchten, und eine Version von ScummVM für Ihr verwendetes Betriebssystem, die Sie auf unserer Downloads-Seite finden können.

Was sind „stabile“ und „nicht stabile“ Versionen von ScummVM?

Die stabilen Versionen von ScummVM wurden auf Fehler überprüft und die Benutzer haben die meisten neu unterstützten Spiele von ScummVM in einer solchen Version testweise durchgespielt.

Die nicht stabilen Versionen von ScummVM enthalten verbesserte Funktionalität. Wenn jedoch neue Funktionen hinzugefügt oder bestehende Fehler beseitigt werden, können andere Fehler oder Abstürze auftreten, die in der stabilen Version nicht vorhanden sind. Wir tun jedoch unser Bestes, damit die unstabilen Versionen nicht auf unstabile Art und Weise laufen, sodass sie z. B. nicht den Computer des Benutzers zum Abstürzen bringen werden.

Weiteres Lesematerial

Das war eine kurze Einführung zu ScummVM. Wir hoffen, dass wir die meisten Ihrer Fragen beantwortet haben. Sie können sich nun weiteren Seiten in diesem Wiki zuwenden, um weitere Informationen zu erhalten. Sie können auch die FAQ (Häufig gestellte Fragen, Englisch) und unsere Dokumentationsseite (Englisch) durchlesen. Die Liesmich-Datei möchten wir Ihnen ganz besonders nahelegen.