Also es gibt 2 sehr große Schwachstellen:
Einmal generell das es sich um eine DLL handelt, den es ist absolut kein Problem sich mit einer eigenen DLL zwischen das Programm und die "FX Engine.dll" zu klinken. Sowas nennt man eine Proxy-DLL. Sie hat genau die gleichen Prozeduren wie die Original-DLL und leitet die Aufrufe der Prozeduren an die Original-DLL weiter. So ist es kein Problem sich die Parameter wie z.b. Archivpasswörter ausgeben zu lassen ohne die geringsten Assemblerkenntnise. Also währe die FX Engine besser als Lib geeignet.
Als Beispiel habe ich so eine Proxy-DLL mal schnell für deine FX Engine gemacht. Anleitung und Source liegen bei:
http://www.gametreasure.de/Temp/FXEngineProxyDLL.zip
Die zweite große Schwachstelle ist, dass du die Dateien auf die Festplatte entpackst. Dort sind sie ohne Probleme abzugreifen. Da muss sich ein Hacker noch nicht mal die Mühe machen die Dateien aus dem Speicher zu kopieren. Ausserdem ist es sehr schlecht für die Performance. Man sollte so wenig wie möglich auf die Festplatte zugreifen bei einem Spiel. Denn die Festplatte ist die dicke fette Performancebremse.
Wenn du die beiden Dinge noch änderst ist deine FX Engine durchaus brauchbar.
Viel Zeit kann man gewinnen, wenn man sich eigene Formate für die Daten wie Bilder und Sound ausdenkt. Aber das kostet auch wieder Zeit in der Entwicklung. Ist immer eine Sache von Kosten-Nutzen-Vergleich. Aber im Grunde ist alles knackbar solange die Passwörter, in welcher weise auch immer, mit dem Spiel mitgeliefert werden, was sie ja zwangsweise müssen.