Autor Thema: Zum Betatest veröffentlicht: Deponia 1 - Ultimate-Fan-Patch-Edition v4.7beta11  (Gelesen 7632 mal)

alphawolf300

  • Teenie Tentakel
  • ****
  • Beiträge: 425
    • Profil anzeigen
    • E-Mail
Echt krass, wie viel da kaputtgegangen ist. War das niemandem wirklich aufgefallen oder den Verantwortlichen einfach egal? Wenn du ein neues Deponia-Spiel machen würdest, hast du gefühlt ein Bruchteil an Arbeit. ;)
Danke!

LogicDeLuxe

  • kleiner Tentakelsaugknopf
  • **
  • Beiträge: 29
    • Profil anzeigen
Deponia 4.7beta10:

Korrekturen aus der letzten Beta:
- Italienischer Ton wurde fehlerhaft gebaut.
- Unsichtbarer Text mit chinesischer, koreanischer und arabischer Schrift an bestimmten Stellen behoben.
- Weitere Questlog-Optimierungen.
- Rufus wird nicht mehr unsichtbar, wenn man nach einem Ebenenwechsel zu schnell auf einen Ausgang klickt.
Spoiler (hover to show)

Weitere Korrekturen des Originalspiels:
- Leider hat die Engine das Problem, dass Rufus sporadisch den definierten Laufbereich verlassen kann. Offiziell wird dann empfohlen, per Doppelklick auf einen Ausgang zu entkommen, aber in manchen Situationen geht das leider nicht. In Kulissen, wo die Ausgänge außer Reichweite scrollen können oder zeitweise inaktiv sind, gibt es deswegen jetzt Failsafetrigger außerhalb des normalerweise begehbaren Bereichs, um Rufus wieder in den vorgesehenen Bereich zu setzen. Falls man also festsitzt, muss man nur ein paar Schritte laufen, um da wieder weg zu kommen.
- Es wurden zahlreiche Stellen behoben, wo Rufus während der Szenenwechsel kurz unsichtbar war.
Spoiler (hover to show)


Bei einem Update auf die bestehende v4.7beta9 können die Videos übernommen werden. Der Rest muss neu gebaut werden.

AmigaMaster

  • Teenie Tentakel
  • ****
  • Beiträge: 283
    • Profil anzeigen
    • Mein YouTube Kanal
TOP!

Der Patch wird der Grund werden, warum ich meine alten Original-DVD nochmals rauskramen werde! Muss so langsam nach einem funktionierenden DVD Laufwerk in der Verwandtschaft schauen. Ich wollte die Deponia Reihe irgendwann noch einmal spielen.
Meine kleine Welt:
YouTube / Odysee
Discord mit vielen Retrobegeisterten
Lösungen jeder kann mitmachen

AmigaMaster

  • Teenie Tentakel
  • ****
  • Beiträge: 283
    • Profil anzeigen
    • Mein YouTube Kanal
Nathan Baggs hat sich den Fehler mit den Magneten angeschaut und verweist dann auf LogicDeLuxe's Fan-Patch  :D

Meine kleine Welt:
YouTube / Odysee
Discord mit vielen Retrobegeisterten
Lösungen jeder kann mitmachen

LogicDeLuxe

  • kleiner Tentakelsaugknopf
  • **
  • Beiträge: 29
    • Profil anzeigen
Nathan Baggs hat sich den Fehler mit den Magneten angeschaut und verweist dann auf LogicDeLuxe's Fan-Patch  :D
Sehr interessantes Video, auch wenn ich nicht verstanden habe, wie das Debuggen von SDL da hilfreich ist. Das ist ja weit entfernt von der Spiellogik. Jedenfalls haben wir es hier offensichtlich mit einem Engine-Bug zu tun, der immer wieder in verschiedenen Visionaire-Versionen auftaucht, in manchen aber auch nicht. LUA-Tabellen werden nur dann nicht mit abgespeichert, wenn sie einen Index mit dem Namen "_temporary_" enthalten, was beim Sprengplan nicht der Fall ist.

Wer sich fragt, wie das in der Spielstanddatei aussieht, wenn man diese "vtp_savedata.xml#g#-01#00000#"-Ressource entschlüsselt, hier die relevante Stelle, in der man gut sieht, daß die Magneten in der Tat korrekt (wenn auch umständlich) gespeichert werden.
<ScriptVariable name="sprengplan" id="1411" order="1411" lastModified="-1" ScriptVariableValueType="5" ScriptVariableKeyType="4" ScriptVariableValue="" ScriptVariableIsGlobalVar="T">
<ScriptVariableItems>
<Link id="1412" tableId="34" LinkAny="F" parentLink="T"/>
<Link id="1413" tableId="34" LinkAny="F" parentLink="T"/>
<Link id="1414" tableId="34" LinkAny="F" parentLink="T"/>
<Link id="1415" tableId="34" LinkAny="F" parentLink="T"/>
<Link id="1416" tableId="34" LinkAny="F" parentLink="T"/>
</ScriptVariableItems>
</ScriptVariable>
<ScriptVariable name="1" id="1412" order="0" lastModified="-1" ScriptVariableValueType="3" ScriptVariableKeyType="3" ScriptVariableValue="1" ScriptVariableIsGlobalVar="F">
<ScriptVariableItems/>
</ScriptVariable>
<ScriptVariable name="2" id="1413" order="1" lastModified="-1" ScriptVariableValueType="3" ScriptVariableKeyType="3" ScriptVariableValue="0" ScriptVariableIsGlobalVar="F">
<ScriptVariableItems/>
</ScriptVariable>
<ScriptVariable name="3" id="1414" order="2" lastModified="-1" ScriptVariableValueType="3" ScriptVariableKeyType="3" ScriptVariableValue="0" ScriptVariableIsGlobalVar="F">
<ScriptVariableItems/>
</ScriptVariable>
<ScriptVariable name="10" id="1415" order="3" lastModified="-1" ScriptVariableValueType="3" ScriptVariableKeyType="3" ScriptVariableValue="3" ScriptVariableIsGlobalVar="F">
<ScriptVariableItems/>
</ScriptVariable>
<ScriptVariable name="19" id="1416" order="4" lastModified="-1" ScriptVariableValueType="3" ScriptVariableKeyType="3" ScriptVariableValue="2" ScriptVariableIsGlobalVar="F">
<ScriptVariableItems/>
</ScriptVariable>
Hier ist der Magnet links oben auf Feld "1" in der Ausgangsposition, und die Magneten 2 und 3 sind auf andere Felder umgesetzt worden. "sprengplan" ist keine boolsche Tabelle, weil man die Magneten nach Aussehen 1 bis 3 unterscheidet, was die Sache aber etwas komplizierter macht. Der Wert 0 bedeutet, daß kein Magnet auf dem Feld ist.
Der Bug liegt wohl darin, daß diese Tabelle nicht geladen wird, obwohl sie im Spielstand gespeichert wurde. Das tückische dabei ist, daß sich dieser Bug nicht bemerkbar macht, wenn vor dem Laden des Spielstands die Magneten bereits auf der selben Stelle standen. Mit dem Wissen kann man so einen betroffenen Spielstand tatsächlich auch ohne Patch retten, wenn man noch weiß, wo die Magneten beim Speichern positioniert waren, oder es durch wildes Rumprobieren rausfinden will. Wenn man in einem intakten Spiel die Magneten wieder an die selben Positionen setzt und dann den betroffenen Spielstand läd, funktioniert es wieder. Das Spiel behält offenbar die Tabelle in dem Zustand, wie sie zum Zeitpunkt des Ladens gerade zufällt im Speicher steht.

Mein Fix ist hier tatsächlich aufwändiger als notwendig. Es war eines der ersten Fixes, die ich gemacht habe, und da wusste ich noch nicht, wie störanfällig Visionaire reagiert, wenn man Spielstände aus früheren Versionen läd. Er entstand also in der Annahme, daß man damit bestehende Spielstände retten könnte. Es gibt eine gewisse Redundanz, da es für jedes Feld auch eine Visionaire-Variable nach dem Schema 1018_magnet_auf_xy gibt, wie man auch im Video sieht. Zunächst habe ich in dieser Schleife einen Zähler eingebaut und prüfe, ob beim Initialisieren auch tatsächlich genau 3 Magneten gezählt wurden. Wenn das wegen des Bugs nicht der Fall ist, lasse ich eine weitere Schleife laufen, welche die Tabelle "sprengplan" anhand der 1018_magnet_auf_xy-Variablen neu aufbaut, ohne die Magnetnummern zu vergleichen. Dadurch kommt es in meiner Version vor, daß die Magneten möglicherweise in einer anderen Reihenfolge platziert werden, aber dann auf jeden Fall an den richtigen Stellen stehen und auch aufnehmbar sind.

Nach dem ich aber mehrfach festgestellt hatte, daß Aufwärtskompatibilität bei Visionaire-Spielständen vergebene Mühen sind, bin ich bei den Tauben und beim Minenlabyrinth etwas anders vorgegangen. Dort habe ich ganz einfach direkt die Visionaire-Variablen in die LUA-Tabellendefinitionen eingetragen. So entfallen die Redundanzen und die Scripte können sich auf Variablen verlassen, die garantiert zuverlässig geladen werden.

Auf jeden Fall hilft mir das Wissen, daß man sich nicht auf vorhandene LUA-Tabellen verlassen kann, enorm bei meinen Fixes weiter.

LogicDeLuxe

  • kleiner Tentakelsaugknopf
  • **
  • Beiträge: 29
    • Profil anzeigen
Deponia 4.7beta11:

Korrekturen aus der letzten Beta:
- Wenn man einen Spielstand in der Bahnhofshalle läd, werden die Lichtverhältnisse jetzt zuverlässig gesetzt.
Spoiler (hover to show)

Weitere Korrekturen des Originalspiels:
- Mögliche Hänger in bestimmten Szenen, wenn man am Mausrad dreht, während der Cursor nicht zu sehen ist.
- version.txt wird jetzt ignoriert und stattdessen immer die interne Version angezeigt. Dieses Feature diente lediglich dazu, dem Daedalic-Support in bestimmten Fällen anzuzeigen, von welcher Platform das Spiel ist, was aber nicht mehr benötigt wird, da der Support nicht für diese UFPE zuständig ist.
- Beim Entwicklerkommentar werden Musik und Geräusche jetzt zuverlässig ausgeblendet und danach korrekt wieder hergestellt.
- Beim Entwicklerkommentar wird jetzt zuverlässig bei Bedarf die Untertitel und der Untertitelhintergrund angezeigt.
- Der Klick-Inventar-Modus wird nicht mehr in bestimmten Situationen auf Mausrad-Inventar umgeschaltet, wenn man Nahaufnahmen oder Minigames verlässt.
- Beim Klick-Inventar wird der Griff ausgeblendet, während ein Entwicklerkommentar spielt.
- Alle Szenenübergänge und Türen wurden generalüberholt, um ein einheitlicheres Verhalten zu erzielen.
Spoiler (hover to show)

weitere Dinge, die bisher nicht zugänglich waren:
Spoiler (hover to show)


Bei einem Update auf die bestehende v4.7beta10 müssen lediglich die Vollversion-Ressourcen neu gebaut werden, um die Dateien data1.vis und resources1.001 zu erneuern. Der Rest kann abgewählt werden werden.