# Inoffizieller Patch

Ein inoffizieller Patch ist eine Fehlerkorrektur oder Mängelbehebung für eine kommerziell vertriebene Software durch einen oder mehrere nicht-kommerziell motivierte Entwickler aus der Benutzergemeinde anstelle des ursprünglichen Softwareherstellers.

## Konzept

Mit inoffiziellen Patches wird versucht, das originale Konzept und den Geist des ursprünglichen Softwareprodukts aufrechtzuerhalten oder sogar stärker herauszuarbeiten. Dieser Fokus unterscheidet inoffizielle Patches deutlich von anderen Anpassungen von Software durch Dritte, wie Mods, Hacks und Cracks. Da diese Patches typischerweise aus als Online-Community organisierten Nutzergemeinden kommen, entstehen diese dort im Konsens, erreichen dadurch eine breite Akzeptanz und werden meistens als legitime „offizielle“ Produktfortführung betrachtet. Dispute über die Authentizität von Anpassungen durch inoffizielle Patches in der Nutzer-Community kommen vor und werden aber typischerweise „konservativ“ gelöst; umstrittene Anpassungen werden dann zu optionalen Komponenten oder weggelassen. Allerdings kann die Entwicklung auch so weit gehen, dass es, wie beim Beispiel OpenTTD, zu einem eigenständigen Spiel kommt, welches vom Original unabhängig ist. Meist handelt es sich beim Original aber schon um Abandonware.

## Motivation

Motivation für die Erstellung dieser Patches ist fehlender Support durch den Entwickler, was einige Gründe haben kann:
* die Software ist außerhalb des zeitlichen Supportrahmens oder wurde durch ein Nachfolgeprodukt abgelöst (geplante Obsoleszenz)
* die Entwicklerfirma existiert nicht mehr oder hat die Rechte an der Software verloren (Abandonware)
* für den Entwickler ökonomisch unrentabel (beispielsweise Lokalisierung von Spielen für kleine Märkte)
* der Entwickler lässt sich zu viel Zeit zur Lösungsbereitstellung für ein kritisches Problem (beispielsweise Sicherheitslücken)
* der Entwickler ist mit den Problemen überfordert
* Das Spiel hat Potenzial, doch der Entwickler bringt keine Updates

## Arten

Im Computerspielebereich werden inoffizielle Patches einzelner Autoren auch Fan-Patch genannt. Kombinierte Patches bestehend aus der Arbeit vieler Autoren aus der Benutzergemeinde werden auch als Community Patch bezeichnet.
Typische Korrekturen zielen auf kritische Bugs im Programm, welche eine bestimmungsgemäße Verwendung verhindern; beispielsweise Ablauffehler, die zu Programminstabilitäten führen, Kompatibilitätsprobleme mit neueren Betriebssystemen oder eine mangelhafte Anpassung an neue technische Gegebenheiten wie beispielsweise höhere Bildauflösung oder Breitbildformate.
Obwohl inoffizielle Patche überwiegend für die PC-Plattform erstellt werden, existieren sie jedoch auch für Konsolenspiele z. B. im Kontext der Emulation-Community.
Ein weiteres häufiges Ziel ist die Übersetzung einer Software in andere Landessprachen, falls diese ursprünglich nicht auch lokalisiert veröffentlicht wurde. Diese Untergruppe von Fan-Patchen wird als Sprachpatch, Fan-Übersetzung oder Fan-Port bezeichnet, u. a. für japanische RPG-Spiele, die häufig nur für den japanischen Markt erscheinen.
Als weitere spezifische Untergruppe können Bloodpatches betrachtet werden, mit denen Spielinhalte eines Computerspiels rekonstruiert werden, die aufgrund von rechtlichen Auflagen oder kulturellen Bedenken des Publishers (Anstößigkeit) für einen Zielmarkt entfernt wurden.
Eine weitere Variante sind Update-Packs, bei denen viele kleine inkrementelle oder nur online verfügbare offizielle Patches zu einem größeren Gesamtpatch zusammengeschnürt werden.

## Methoden

Da typischerweise der Quelltext und die Entwicklungswerkzeuge der Software den Community-Patchern nicht zur Verfügung stehen, muss durch Reverse Engineering und Debugging das Verhalten der Software analysiert werden. Für manche Ziele genügt es, kleinere Änderungen beispielsweise in Konfigurationsdateien oder der Registrierungsdatenbank durchzuführen, beispielsweise bei Bloodpatches; Aufwand und Größe dieser Patches sind damit oft gering. Andere Ziele können vor allem durch Anpassen der Programmdaten erreicht werden, beispielsweise High-Resolution Patches, die Graphiktexturen austauschen, oder Fan-Übersetzungen eines Spiels; hier existiert eine Nähe in Konzepten und Entwicklungswerkzeugen (SDKs und eigens entwickelte Tools) zur Modding-Szene.
Für andere komplexere Ziele wie beispielsweise Fehlerkorrekturen an der Spiel-Engine ist eine direkte Anpassung des Binärcodes, beispielsweise mit einem Hex-Editor in Assembler, notwendig. Dieses Vorgehen ist deutlich aufwändiger als eine Anpassung direkt am Quellcode mit einer Neukompilierung, wie es der Softwarehersteller mit Zugang zum Quellcode durchführen kann. Dieses Szenario wird von Vertretern der Open-Source-Software-Bewegung als Argument dafür angeführt, dass Software prinzipiell immer mit seinen Quelltexten veröffentlicht werden sollte, damit Benutzer auch bei Nicht-Interesse (Geplanter Obsoleszenz) oder Nicht-Vorhandensein der ursprünglichen Entwickler die Möglichkeit haben, eine Software anzupassen.
In seltenen Fällen bekommt die Community Zugang zu dem Quelltext der Software und kann damit am effektivsten den Support übernehmen; entweder passiert diese über eine offizielle Freigabe oder durch eine ungewolltes verfügbar werden (leaken) wie z. B. passiert bei der Spiel-Engine von Thief.

## Rezeption

Das Verhalten der Ersteller und Rechteinhaber zu den inoffiziellen Patches ist sehr unterschiedlich, da die ungenehmigten Anpassungen zwar meistens keinen finanziellen Schaden verursachen, jedoch rein rechtlich eine Verletzung des Urheber- oder Markenrechts darstellen. Die Reaktionen reichen von Ignoranz, Tolerierung, rechtlicher Bekämpfung und offizieller (stillschweigender) Verwendung bis zur aktiven Unterstützung der Bemühungen.
Es gab auch schon das Szenario, dass den Communityentwicklern die offizielle (kommerzielle) Weiterentwicklung durch den Rechteinhaber übertragen wurde.
Auch für eine Unterstützung der Community durch eine Offenlegung des Quellcodes für eine freie Weiterentwicklung der Software gibt es einige Beispiele: Myth, Homeworld, Allegiance und viele Spiele von id Software und 3D Realms. Für eine Übersicht der Spiele, welche freigegeben wurden, um der Community den Selbst-Support zu ermöglichen, siehe die Liste kommerzieller Computerspiele mit veröffentlichtem Quelltext.

## Beispiele für Spiele mit signifikanten Community Patches

| Spiel | Patchtyp |
| Anachronox | Bugfixpatch |
| Arcanum: Von Dampfmaschinen und Magie | Spielablaufkorrekturen, Bugfixpatch, Fan-Übersetzung |
| Chrono Trigger | Sprachpatch, Bugfixpatch |
| Command & Conquer: Alarmstufe Rot | Bildauflösungs-Patch, Bugfixpatch, Kompatibilitätspatch, No-CD |
| Command & Conquer: Der Tiberiumkonflikt | Bildauflösungs-Patch, Bugfixpatch, Kompatibilitätspatch, No-CD |
| Daggerfall | OS-Kompatibilität, Bugfixpatch, Fan-Übersetzung |
| Dark Engine (Thief 1, Thief 2, System Shock 2) | OS- und Hardware-Kompatibilitätspatch, Bugfixpatch |
| Dark Souls II | Bug fixes |
| E.T. the Extra-Terrestrial | Bug fixes |
| Empire Earth 2 | Bugfixpatch, Bildauflösungs-Patch, DirectX-9-Unterstützung, Spielablaufkorrekturen, Multiplayer-Client- und Server-Ersatz (nach dem Abschalten des offiziellen Servers) |
| Fallout 2 | Bugfixpatch, Bildauflösungs-Patch, Bloodpatch |
| Freelancer | Bugfixpatch, Spielablaufkorrekturen |
| Galactic Civilizations II | Spielablaufkorrekturen, Datenbank-Korrekturen, Game-Engine |
| Gothic 3 | Gameengine-Patch, Spielablaufkorrekturen |
| Heroes of Might and Magic III | Bug fixes, Quality of Life, Bildauflösungs-Patch, Multiplayer-Online-Lobby, No-CD |
| Infinity Engine (Baldur’s-Gate-Reihe, Icewind Dale etc.) | Bugfixpatch, Bildauflösungs-Patch, Fan-Übersetzung |
| Legacy-of-Kain-Serie | OS-Kompatibilität, Bugfixpatches |
| LucasArts-Adventures (Monkey Island, Indiana Jones etc.) | Fan-Übersetzung |
| Master of Orion III | Fan-Übersetzung |
| Seiken Densetsu 3 | Fan-Übersetzung |
| Skyrim | Bugfixes, Übersetzungskorrekturen |
| Star Ocean | Fan-Übersetzung |
| Star Wars: Knights of the Old Republic II: The Sith Lords | Bug fixes, wiederhergestellte Inhalte, Widescreen support |
| Supreme Commander | Bugfixpatch, Multiplayer-Client- und Server-Ersatz (nach dem Abschalten des offiziellen Servers) |
| Titan Quest | Bugfixpatch |
| Ultima-Reihe | OS-Kompatibilitätspatch, Bugfixpatch, Fan-Übersetzung |
| Vampire: The Masquerade – Bloodlines | Bugfixpatch |

## Beispiele für Software mit inoffiziellen Patches

| Software | Patchtyp |
| Adobe Acrobat | schneller Securityfix |
| Java | schneller Securityfix |
| Windows 95 | Update-Pack |
| Windows 98 | Update-Pack, Support für größere Festplatten, Support für XP-Anwendungen |
| Windows XP | Update-Pack |
| Internet Explorer | schneller Securityfix |
| Nvidia nForce-Chipsatz Treiber | Support von älteren Chipsätzen für neuere Windows-Betriebssysteme |
| Windows-Metafile-Format | schneller Securityfix |
| Windows URI-Problemen | schneller Securityfix |
| Mac OS X 10.3 | Daylightsaving-Patch |