Hallo liebe Patchnutzer, -laien, -interessierte, -zweifler und -verteufler,
diesen Post habe ich einmal im Kamiboard gemacht (innerhalb eines anderen Threads). Ich denke aber, es schadet nicht, ihn (in aktualisierter Form) auch hier zu veröffentlichen.
Es geht in diesem Post nur um allgemeine Fragen (z.B. zum Sinn, zur Definition, zu Risiken, etc. von Patches), nicht um eine Auflistung oder Erklärung von einzelnen Patches!
*räusper*
Was ist ein Patch/ein Plugin? Hier gibt es schon einmal erste Unklarheiten. Ein Patch im eigentlichen Sinn ist eine Veränderung einer oder mehrerer Dateien. Viele Modifikationen, wie etwa RPG Maker 2009 Ultimate, der Tastenpatch oder der Power Patch verändern aber gar keine Dateien, sondern benennen Sie um oder ersetzen sie (der RM2k9U tut nicht mal das). Im folgenden werde ich aber dennoch, der allgemeinen Meinung entsprechend, jegliche Modifikation oder Erweiterung des RPG Makers mit "Patch" betiteln.
DynRPG ist zum Teil auch ein Patch (der andere Teil ist ein SDK was für Ersteller von Plugins notwendig ist), seine Möglichkeiten sind mit Ruby/RGSS beim RPG Maker XP/VX vergleichbar. Ein Plugin ist eine Erweiterung (meistens nicht von mir erstellt), die vom DynRPG-Patch nur eingebunden wird, vergleichbar mit einem Skript beim RPG Maker XP/VX.
Was für mich nicht unter Patch fällt und in diesem Post auch nicht behandelt wird, sind externe Zusatztools, die am Verhalten des RPG Makers (Editor und/oder Spieleengine) nichts verändern. Darunter fallen zum Beispiel Tools wie "RM Tool" oder "DreaMaker", oder auch der Mass Importer von derula. Diese Tools können im Prinzip alles mit dem Projekt tun, ich kann daher nicht genauer darauf eingehen. Sie können aber auch viel kaputtmachen, was ein Problem vieler unnötige-Ressourcen-entfern-Tools ist.
Verschiedene Arten von Patches Patches, die das Projekt verändern Diese Patches sind am häufigsten und besitzen die größte Wirkung. Die wirken sich nur auf ein Projekt aus.
Patches, die die RPG_RT.exe verändern Diese Patch-Form ist am mächtigsten. Solche Patches werden entweder in Form einer bereits veränderten RPG_RT.exe, einem IPS/HPA-Patch oder einem eigenen Patcher ausgeliefert. Der Programmierer muss normalerweise für jede Makerversion händisch eine eigene Patchversion erstellen, die nur mit genau dieser Makerversion kompatibel ist. Dies ist dadurch bedingt, dass sich die Position der verschiedenen Codestellen in der Datei von Version zu Version unterscheidet. Wird an einer Stelle am Anfang des Programmcodes von Enterbrain etwas geändert, verschiebt sich der ganze Rest, wodurch die Adressen der verschiedenen Stellen nie gleich bleiben. Nur in den wenigsten Fällen, nämlich wenn die Änderung sehr klein ist und anhand von "Anhaltspunkten" im Programmcode durch einen Patcher automatisch gefunden werden kann, ist es möglich, einen solchen Patch für alle Versionen kompatibel zu machen. Beispiele für diese Patchform sind der BetterAEP, der PicPointerPatch, der Hyper Patcher 1 und 2 sowie viele andere.
Patches, die die Harmony.dll ersetzen Die Harmony.dll stellt das Sound-System des RPG Makers dar. Sie ist dafür zuständing, Musik und Sounds wiederzugeben. Sie existiert nur im RPG Maker 2000 bis Version 1.10 und im RPG Maker 2003 bis Version 1.04, in den anderen Versionen ist das Sound-System direkt im RPG Maker integriert (dies sind jene Versionen, die auch MP3s unterstützen). Dank Bananen-Joes Harmony-Patcher (von mir als "Force Harmony" herausgegeben) kann man auch den MP3-Versionen wieder eine Harmony.dll "aufzwingen". Das Ersetzen dieser Datei bietet nun eine einfache Möglichkeit, etwas am Sound-System zu verändern. Mit ein paar Tricks (Sounddateien die gar keine sind, sondern Befehle enthalten; Ausnützen der "Get MIDI Tick"-Funktion) kann man auf diesem Wege aber noch mehr Features unterbringen, die Benutzung dieser ist dann aber nicht mehr ganz so einfach (z.B. Tastenpatch).
Patches, die die RPG_RT.exe umbenennen und durch eine eigene ersetzen Einige Patches, wie z.B. der Power Patch, benennen die RPG_RT.exe um und ersetzen sie dann durch eine eigene. Dies bewirkt, dass beim Spielstart zuerst das neue Programm gestartet wird, welches dann die umbenannte RPG_RT.exe startet. Dadurch können z.B. Werte im Speicher überwacht oder manipuliert werden. Dieses System funktioniert prinzipiell für alle Versionen, es hängt aber davon ab, was der Patch erreichen will und wie er das zu erreichen versucht.
DynRPG-Plugins Wie oben erwähnt, sind diese Vergleichbar mit Skripts beim RPG Maker XP/VX. Die eigentliche Modifikation an der RPG-Maker-Engine wird aber durch den DynRPG-Patch selbst hervorgerufen.
Erweiterungen in Form eines externen Programms Es gibt auch einige Erweiterungen, die in Form eines externen Programms vorliegen, welches durch ein Event aufgerufen wird. Sie sind nicht eigenständig, weil der RPG Maker ja von Haus aus keine externen Programme aufrufen kann. Es wird also noch ein Patch (z.B. Tastenpatch oder Power Patch) benötigt, welcher diese Fähigkeit mitbringt. Beispiele für solche Erweiterungen sind Mirokus Screenshot-Tool und der Power Patch Compact.
Patches, die den RPG-Maker-Editor verändern Änderungen am Editor (RPG2000.exe/RPG2003.exe) machen eigentlich nur Dinge möglich, die von Seiten der Spielengine (RPG_RT.exe) bereits möglich wären, wie z.B. höhere Anzahl an Animationsframes, etc. Diese Änderungen wirken sich gleichzeitig auf alle und auf keine Projekte aus: Es wird kein Projekt verändert, die neuen Funktionen sind aber in allen Projekten nutzbar. Die Modifikation selbst findet normalerweise nur in den Dialogressourcen statt (z.B. mit dem Tool "Resource Hacker"), was nicht den Programmcode selbst, sondern nur Eigenschaften eines Dialogfensters (z.B. Maximalwerte für Zahleneingabefelder) verändert. Eine Ausnahme ist der RPG Maker 2009 Ultimate, welcher ein eigenständiges Programm ist, was in Folge den unmodifizierten RPG Maker startet, sich selbst in ihn "injiziert" und im Speicher weitreichende Veränderungen vornimmt. Für manche Patches, die die RPG_RT.exe verändern (z.B. PicPointerPatch oder die 9999-Picture-Funktion des Hyper Patcher 2) ist auch eine Veränderung des Editors nötig, z.B. damit die höheren Werte, welche möglich gemacht wurden, im Editor auch eingestellt werden können. Eine Veränderung des Editors mit dem Resource Hacker ist versionsunabhängig.
Probleme - aber auch "Aberglaube" Muss der Spieler auch den Patch installieren? Nein. Generell ist der Patch ja bereits im Projekt enthalten (außer bei Editor-Patches, wo das aber auch gar nicht notwendig ist). Es gibt nur eine Ausnahme: Tastenpatch. Normalerweise packt der RPG Maker nicht in jedes Projekt eine Harmony.dll, sondern eine zentral ins Systemverzeichnis von Windows, um Platz zu sparen. Der Spieler braucht normalerweise nichts extra zu installieren, da durch das RTP diese Datei bereits in seinem Systemverzeichnis vorhanden ist. Der Tastenpatch ersetzt nun einfach diese zentrale Harmony.dll. Auf dem PC des Spielers ist diese Datei aber normalerweise noch die originale vom RTP, wodurch der Tastenpatch vom Spieler extra installiert werden muss. Man kann dies aber auch umgehen, indem man einfach die Harmony.dll und Oldharmony.dll ins Projektverzeichnis kopiert. Dann ist alles schon vorbereitet und der Spieler kann einfach losspielen.
Kann ein Patch meinen RPG Maker oder mein Projekt ruinieren? Eigentlich nicht, außer bei falscher Anwendung (oder schwerwiegender Fehler im Patch, und auch dann nur, wenn es sich um stärkere Änderungen des Editors handelt - das lässt sich aber weitestgehend ausschließen, wenn der Patch schon einige Wochen "am Markt" ist). Macht man eine Sicherungskopie vor dem Patchen, kann eigentlich nichts passieren. Wenn nach dem Patchen alles noch funktioniert, ist davon auszugehen, dass es auch weiterhin funktionieren wird.
Das Projekt selbst zu zerstören, ist eigentlich fast nur durch (sinnloses) Patchen einer Map, der Datenbank o.ä. möglich.
Es gibt nur folgende Möglichkeiten, etwas zu ruinieren:
Patchen der falschen Datei Wendet man einen Patch, der als IPS-Datei vorliegt (dabei wird nichts überprüft) auf die falsche Datei an, z.B. einen Patch der für das Projekt gedacht ist, auf die RPG2000.exe/RPG2003.exe, so wird diese Datei dabei höchstwahrscheinlich zerstört. Es ist auch zu beachten, dass ja manche Patches die RPG_RT.exe umbenennen (z.B. der Power Patch zu RPG_RT.oex). Vergisst man diesen Umstand und patcht nun mit einem anderen Patch die RPG_RT.exe (die ja vom Power Patch stammt und nicht zur eigentlichen Spielengine gehört) anstatt der RPG_RT.oex (die ja die Spielengine ist, nur umbenannt), wird dabei ebenfalls die RPG_RT.exe zerstört.
Anwenden einen Patches auf eine falsche RPG_RT.exe-Version Ein Patch modifiziert Daten an einer vorgegebenen Position in der Datei. Handelt es sich dabei um die falsche Dateiversion, befinden sich an der angegebenen Position natürlich andere Daten als die gewünschten. Werden diese modifiziert, hat dies einen unvorhersehbaren Effekt (der sich aber meistens in einer "????????"-/"Access Violation"-Fehlermeldung manifestiert. Um dem vorzubeugen, habe ich das HPA-Dateiformat entwickelt: Hyper Patcher 2 überprüft selbstständig die Version und findet auch dann die richtige Datei, wenn sie durch einen anderen Patch umbenannt wurde. Man kann mit einem HPA-Patch also eigentlich nichts kaputtmachen. Die meisten Patches sind mit RPG Maker 2000 v1.07 und/oder RPG Maker 2003 v1.08 kompatibel.
Fehler im Patch Aufgrund der Einfachheit der meisten Modifikationen ist eine Fehlfunktion normalerweise auszuschließen. Enthält der Patch trotzdem Fehler, machen diese sich meistens durch Abstürze bemerkbar. Patches, die die Spielengine (RPG_RT.exe) manipulieren, können prinzipiell keinen Schaden am Projekt verursachen. Solche, die den Editor nur durch den Resource Hacker manipulieren, auch nicht. Lediglich kompliziertere Modifikationen am Editor, wie der leider fehlerhafte Event Mixer, können in der Tat einen Teil des Projekts (z.B. die Database oder eine Map) zerstören, wenn sie einen schwerwiegenden Fehler enthalten. In allen anderen Fällen braucht man sich wirkich keine Sorgen zu machen.
Welche Patches sind untereinander kompatibel? Grundsätzlich betrachtet, alle mit allem. Es gibt aber Ausnahmen:
Patches, die nur aus einer modifizierten RPG_RT.exe bestehen Diese Art der Patches, wie z.B. der BetterAEP, kommen nicht als Patcher, IPS- oder HPA-Datei, sondern als fertige RPG_RT.exe daher. Das wird blöd, sobald man sie mit anderen Patches kombinieren will. Dazu muss man entweder diese RPG_RT.exe als Ausgangsbasis nehmen, oder mit einem Tool wie Lunar IPS eine IPS-Datei durch Vergleichen der modifizierten und einer originalen RPG_RT.exe erzeugen. Eigentlich ist der Programmierer (also z.B. ich) schuld daran, weil es spräche nichts dagegen, das Ding direkt als IPS oder HPA herzugeben.
Patches, die eine eigene RPG_RT.exe mit anderer Version mitbringen Beispiele hierfür sind Power Mode 2003 sowie Gnafs Picturebetrug. Letzterer ist überhaupt nur eine leicht modifizierte RPG_RT.exe vom RPG Maker 2000 Value! v1.50, während ersterer eine stark modifizierte RPG_RT.exe vom RPG Maker 2003 v1.09a ist. Wendet man nun auf die RPG_RT.exe vom Power Mode 2003 einen Patch an, der nur für Version 1.08 gedacht ist, kann das nicht funktionieren.
Mehrere Patches, die den selben Bereich in der Datei modifizieren Um tolle Features in die RPG_RT.exe zu quetschen, braucht man Platz. Den nehme ich z.B. von Stellen, die vom RPG Maker nicht verwendet werden. Passiert es nun, dass mehrere Patches den selben Bereich für sich verwenden wollen, kommt natürlich Murks raus, der höchstwahrscheinlich in Abstürzen resultiert. Ich versuche aber, möglichst in keinen zwei Patches denselben Bereich zu verwenden.
Sind Patches kompliziert? Kommt darauf an. Manche schon, wie etwa der Tastenpatch. Ich habe damals, als ich das erste Mal von ihm hörte, recht lange gebraucht, bis ich den kapiert habe. Ich versuche aber, alles so einfach zu verwenden wie möglich zu gestalten.
Können Patches irgendwelche Bugs im Spiel verursachen? Nein*. Zumindest nicht bei richtiger Anwendung. Wenn jemand z.B. den UnlockPics-Patch auf sein Projekt anwendet, aber irgendwo im Projekt auf der Tatsache aufbaut, dass Bildaktionen während Messages pausieren, wird etwas durcheinandergeraten. Es sollte aber jeder fähig sein, zu Überlegen, was er da an der Verhaltensweise des Makers ändert, und wie sich das auswirkt. Wurde ein Patch irgendwie falsch (z.B. auf die falsche Version) angewendet, wirkt sich das normalerweise sofort durch Nicht-Funktionieren des Patches, oder auch direkt durch eine Fehlermeldung aus. Wenn alle Funktionen des Patches funktionieren, braucht man im Normalfall keine Angst zu haben, an anderer Stelle Fehler hervorgerufen zu haben. * Natürlich können sich in Patches - wie in jede andere Software auch, noch dazu wenn sie von einer einzigen Person erstellt wurden - auch Programmierfehler einschleichen (davon hat der RPG Maker übrigens auch selber genug). Man kann aber davon ausgehen, dass diese schon in der Anfangszeit von gefunden werden, wenn die ersten Leute die Patches ausprobieren. Ist ein Patch also schon ein paar Monate alt (und von ausreichend vielen Benutzern verwendet worden, also nicht ein "Flop", den 3 Leute bisher kurz ausprobiert haben), kann man davon ausgehen, dass er keine Probleme verursacht. Selbst wenn man im Spiel ein Fehlverhalten feststellen sollte, was nicht auf vorher erwähnte Gründe (bewusste Änderung des Makerverhaltens oder falsche Anwendung) zurückzuführen ist, lässt sich dies durch Entfernen des Patches, oder besser natürlich, Benachrichtigen des Autors und nach Erhalt und Installation einer verbesserten Version, immer wieder entfernen. Ein DynRPG-Plugin ist aber meistens von jemandem anderen, und zwar in C++ geschrieben, d.h. man kann so ziemlich alles damit tun was ein normales Programm eben kann, und ich kann nicht kontrollieren was die Leute da reinschreiben - aber erstens ist in unserer Community diesbezuglich ja glücklicherweise Vertrauen vorhanden (immerhin gilt das gleiche für meine und anderer Leute Programme - wir könnten da ja auch heimlich Viren einbauen, tun wir aber nicht) und zweitens frage ich alle Pluginschreiber nach dem Quellcode (sofern keiner beim Download dabei ist), sehe ihn an und mache die Ersteller auf eventuelle Fehler aufmerksam, wenn diese negative Auswirkungen (Memory Leaks, Fehlverhalten, ...) haben könnten.
Sinn und Zweck von Patches Patches dienen dazu, die Möglichkeiten des RPG Makers zu erweitern und/oder Zeit und Arbeit zu ersparen. Die meisten sind mit dem RPG Maker schon vertraut, und möchten daher, wenn sie ein neues Projekt starten, nicht zu einer anderen Engine wechseln und sich neu eingewöhnen, wenn sie nur eine kleine Zusatzfunktion (wie etwa einen eigenen Titlescreen) brauchen (oder auch einmal eine größere). Dies gilt insbesondere, wenn der Bedarf nach einer Erweiterung bei einem bereits angefangenen Projekt entsteht. Es ist niemand zuzumuten, sein Projekt mit einer anderen Engine neu zu beginnen, nur weil z.B. die Picture-IDs ausgehen oder bei der Erstellung eines Item-Menüs eine Zeitersparnis durch den PicPointerPatch willkommen wäre. Übrigens ist die Anzahl an Nutzern, die Patches verwenden, größer als manche glauben, nur wird nicht immer in der Spielevorstellung erwähnt, wenn ein Patch verwendet wurde.
Es ist niemand gezwungen, Patches oder Plugins zu nutzen. Aber man sollte sie auch nicht mit einem der oben genannten Vorurteile verteufeln (und Fehlbehauptungen und Halbwissen herumschreien) - oder anderen einen Vorwurf zur Patchnutzung machen.
mfG Cherry
|