# ScummVM

ScummVM ist eine Software- und Skript-Sammlung, in der zahlreiche nachgebaute Spiel-Engines unter einer gemeinsamen grafischen Benutzeroberfläche zusammengefasst sind. Viele ältere Computer- und Konsolen-Spiele sind damit auf wesentlich moderneren oder auch ganz anderen Plattformen lauffähig, als deren ursprüngliche Entwickler vorhersehen oder bei der Programmierung berücksichtigen konnten.
Zunächst lediglich für Adventures auf Basis der Skriptsprache SCUMM des Anbieters LucasArts entwickelt, unterstützt ScummVM (Akronym für „Script creation utility for maniac mansion – Virtual Machine“) heute eine ganze Reihe Spiele anderer Hersteller wie beispielsweise Revolution Software, Adventure Soft oder Sierra Entertainment.
ScummVM ist selbst als freie Software unter der GNU General Public License veröffentlicht. Die einzelnen damit spielbaren Titel sind jedoch mit wenigen Ausnahmen weiterhin durch Rechte der jeweiligen Hersteller geschützt.

## Technik

Das Team hinter ScummVM hat sich darauf spezialisiert, verschiedenste Spiel-Engines oder Interpreter für Skriptsprachen älterer Spiele zu analysieren und für diese Spiele neue ausführbare Dateien (Executables) zu entwickeln. Daher ist ScummVM weder ein Emulator noch eine Laufzeitumgebung für die Originalsoftware, sondern eigentlich eine Sammlung durch Reverse Engineering erstellter Nachbauten. Dabei wird auf weitestgehend kompatible und verhaltensgleiche Wirkung geachtet. So wird direkt auf die originalen Spiele-Ressourcen, wie z. B. Hintergründe, Bilder, Grafiken, Animationen, Figuren, Soundeffekte, Musik und Videos zugegriffen. Deren Verknüpfung mit den Benutzerinteraktionen als Spielablauf/Handlung wird jedoch durch ScummVM-Skripte bzw. neu geschriebene Executables gesteuert.
Anlass für diese Bemühungen ist, dass die Originalspiele von ihren Herstellern in der Regel nur unter wenigen, inzwischen längst veralteten Betriebssystemen oder kaum noch verfügbaren Konsolen implementiert worden sind, oder dass die Spiele auf moderner Hardware nicht mehr in befriedigender Qualität und Stabilität zum Laufen zu bringen sind. Die Nachbauten sind darauf ausgelegt, möglichst plattformunabhängig zu funktionieren, solange die ScummVM-Umgebung auf der betreffenden Plattform läuft – wie bei einer virtuellen Maschine, daher im Namen das „VM“.
Darüber hinaus ermöglicht ScummVM seinen Benutzern, die Darstellung der Originalgrafik zu optimieren. Ältere Spiele wurden häufig für niedrigere Bildauflösungen entwickelt. Adventures aus den ersten Jahren unterstützen standardmäßig nur 320×200 Bildpunkte. Zur Darstellung auf einem modernen Computermonitor mit deutlich höherer Auflösung und oft auch abweichendem Seitenverhältnis bietet ScummVM verschiedene Techniken, um die Grafik zu skalieren, zu strecken oder bietet eine Auswahl verschiedener Modi für das Rendering bzw. die Farbdarstellung.
Außerdem ist es mit ScummVM möglich, auch solche Spiele mit Audio- und Musikausgabe zu spielen, für die das Originalprogramm ganz bestimmte Sound-Hardware voraussetzt, wie beispielsweise eine AdLib- oder Sound-Blaster-Karte, die auf aktuellen Plattformen nicht zur Verfügung steht. Es werden stattdessen die betriebssystemeigenen Soundfunktionen verwendet. Für den Fall, dass das Betriebssystem keine MIDI-Ausgabe unterstützt, hat ScummVM FluidSynth integriert, einen Echtzeit-Software-Synthesizer, der auf den SoundFont-2-Spezifikationen basiert und ein der MIDI-Ausgabe möglichst ähnliches Ergebnis liefern soll.
ScummVM ist in C++ geschrieben und greift für Grafik- und Sound-Ausgaben auf die portablen Programmbibliotheken SDL, MAD, Vorbis oder Tremor, FLAC und libmpeg2 zurück. Neben dem Quellcode sind für die meisten unterstützten Betriebssysteme Binärdateien auf der Website des Projekts verfügbar. Zahlreiche Linux- und BSD-Distributionen bieten kompilierte Programmpakete auch in ihren Repositories.
Aktuelle Implementierungen gibt es unter anderem für Microsoft Windows, macOS, sowie für verschiedene BSD- und Linux-Systeme, für iOS, Android und die Konsolensysteme Dreamcast, Nintendo DS, Playstation 3, PlayStation Portable, Playstation Vita, Nintendo DS, Nintendo Wii und Nintendo Switch. Es gibt weitere Implementierungen für eine Vielzahl älterer Systeme, die aber zumeist schon seit längerer Zeit nicht mehr aktualisiert worden sind, weil Systeme selbst nicht weiterentwickelt werden und deren Verbreitung abnimmt oder weil das ScummVM-Team derzeit niemanden hat, der die Rolle des Maintainer übernehmen könnte.
Seit Version 1.2.0 kann die Oberfläche nicht nur in Englisch, sondern auch in zahlreichen anderen Sprachen angezeigt werden.

## Entwicklung

Hinter ScummVM steht eine private Gruppe von Entwicklern. Etwa halbjährlich erscheinen neue Versionen, die neben Fehlerkorrekturen und Verbesserungen der Spielbarkeit auch immer Unterstützung für weitere Spiele mit sich bringen. Das Projekt ist seit 2007 regelmäßig beim Google Summer of Code vertreten.
Zunächst konzentrierte sich die Entwicklung ausschließlich auf das von LucasArts entwickelte Skriptsystem SCUMM und alle Spiele, die mit der zugehörigen Spiel-Engine SPUTM entwickelt wurden. Neben den LucasArts-Adventures wie den ersten drei Monkey-Island-Spielen nutzen diverse Spiele von Humongous Entertainment dieses System. Inzwischen wächst jedoch die Zahl der unterstützten Adventures zunehmend um Titel, die auf ganz anderen Engines entwickelt worden sind.

### Sarien und FreeSCI

Im Jahr 2007 entschieden sich die Entwickler des 1999 gestarteten Projekts Sarien und zwei Jahre später auch die Entwickler von FreeSCI, das Ergebnis ihrer Arbeit in das ScummVM-Projekt einzubringen bzw. mit ScummVM gemeinsam weiterzuentwickeln. Bis dahin hatten sie sich erfolgreich, aber von ScummVM unabhängig, der Spielbarkeit älterer Adventures von Sierra On-Line (heute Sierra Entertainment) gewidmet. Zahlreiche Adventures, die mit TrollVM (preAGI) und Adventure Game Interpreter (AGI) entwickelt wurden, konnten schon länger unter ScummVM gespielt werden. Mit Version 1.2.0 „FaSCInating release“ erhielt ScummVM schließlich auch die Ergänzung um den Sierra Creative Interpreter (SCI). Seither sind Adventures aus der Reihe Leisure Suit Larry, den Quest-Serien King’s Quest, Police Quest, Space Quest und andere bekannte Klassiker, nicht zuletzt auch zahlreiche, ebenfalls in SCI entwickelte Fan Games über ScummVM spielbar.

### ResidualVM

ResidualVM (anfangs nur „Residual“) war ein Nebenprojekt einiger ScummVM-Entwickler, mit dem Ziel, auch ältere 3D-Grafik-Adventures auf neueren Systemen lauffähig zu machen. Dabei konzentrierte man sich zunächst auf Grim Fandango und Flucht von Monkey Island, welche beide auf der Skriptsprache Lua, sowie der Spiel-Engine GrimE basieren. Am 9. März 2014 gaben die Entwickler bekannt, dass ResidualVM unter der Schirmherrschaft von ScummVM als Projekt für das Stipendium Google Summer of Code akzeptiert wurde. Im Jahr 2019 erschien auf der Projektseite auch Myst III: Exile in der Liste der von ResidualVM unterstützen Spiele und zum 20. Jahrestags der Erscheinens von The Longest Journey wurde im November 2019 eine Unterstützung für dieses Spiel angekündigt.
Am 9. Oktober 2020 gab ScummVM.org auf seiner Newsseite bekannt, dass man zwischen 2D- und 3D-Adventurespielen nicht mehr länger unterscheiden werde. Das Schwesterprojekt sei jetzt in ScummVM integriert worden. Die Mehrheit der ResidualVM-Entwickler habe sich dem ScummVM Team angeschlossen, um in Zukunft gemeinsam weiterzuentwickeln. Neben den schon genannten Spielen habe man auch noch unfertige Arbeit an In Cold Blood und der Wintermute Engine auf ScummVM übernommen.

## Verfügbarkeit der Spiele

ScummVM selbst enthält keine Spiele. Die Benutzer müssen sich also zunächst ein eigenes Exemplar eines der unterstützten Spiele kaufen. Durch ihr hohes Alter sind einige der Spiele jedoch in preiswerten Sammlungen, zum Beispiel den LucasArts Classics, erhältlich.
Inzwischen gibt es auch einige Adventures, die von den Entwicklern freigegeben wurden:
* Lure of the Temptress (Revolution Software)
* Beneath a Steel Sky (Revolution Software)
* Flight of the Amazon Queen (Interactive Binary Illusions)
* Drascula: The Vampire Strikes Back (Alcachofa Soft)
* Sołtys (LK Avalon)
* Sfinx (LK Avalon)
Deren Entwickler entschieden sich nicht nur, dem ScummVM-Team Einblick in den Quelltext zu gewähren, sondern die Spieldaten sowohl der CD- als auch der Disketten-Versionen als Freie Software zu veröffentlichen, wodurch sie auf der ScummVM-Website zum Herunterladen angeboten werden und einige davon auch auf freien Linux-Distributionen beigefügt werden dürfen.
Dazu gehört Dragon History (NoSense), das für ScummVM neu überarbeitet und dessen Quelltext unter GPLv2 gestellt wurde. Zudem kann Teen Agent (Metropolis Software House / CD Projekt) auf Good Old Games als Freeware heruntergeladen werden.