Beiträge: 817
Themen: 4
Registriert seit: Nov 2007
Bewertung:
19
15.02.2026, 08:25
(Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2026, 08:25 von Henne.)
(15.02.2026, 01:24)Alrik Alrikson schrieb: Ich empfinde es nicht als Enttäuschung, vielmehr als eine Erkenntnis von Dingen, deren Nachvollziehbarkeit mir zuvor verborgen geblieben sind.
Davon abgesehen hatte ich keine Frage gestellt und auch keine Erwartungshaltung formuliert.
Zudem glaube ich auch es verschmerzen zu können, wenn mein in die Jahre gekommenes Lieblings-Rollenspiel durch Dekonstruktion vorherige Mysterien offenbart. In jedem Fall interessiert es mich mehr als es mich abschreckt. ;-)
Das war nur eine Warnung: Hab mir nachdem ich den Charaktergenerator weitestgehend fertig und verstanden hatte ein Video von zwei Gamern angesehen die mehrere Charaktere erstellt haben.
So ein Charakter für Schick ist aus meiner Sicht mittlerweile eine 14032-stellige Binärzahl.
In dem Video wurden dieser menschliche Eigenschaften zugesprochen.
Das war irritierend für mich.
Ich hab's dann abschalten müssen, weil an diesem Punkt für mich die Gamerperspektive nicht mehr akzeptabel war.
Das bringt die Arbeit an so einem Projekt mit sich und das war von mir für mich auch so beabsichtigt.
Deshalb sag ich dir das vorher. Nachdem du deinen Erkenntnisgewinn hattest, wird sich das vermutlich auf darauf auswirken, wie du das Spiel (und vielleicht auch das Lösungsbuch) wahrnimmst.
Beiträge: 14.570
Themen: 98
Registriert seit: Sep 2006
Bewertung:
48
(15.02.2026, 01:24)Alrik Alrikson schrieb: Zudem glaube ich auch es verschmerzen zu können, wenn mein in die Jahre gekommenes Lieblings-Rollenspiel durch Dekonstruktion vorherige Mysterien offenbart. Ich fände es sogar höchst wünschenswert, wenn die Schicksalsklinge einmal alle ihre Mysterien preisgibt. Es gibt ja vieles, das man empirisch nicht oder nur unscharf und auch nur mit immensem Aufwand herausfinden kann.
Wenn man die Funktionsweise versteht, mag man viele Ungereimtheiten oder Mysterien als technische Fehler identifizieren. Aber die Erkenntnis, unter welchen Bedingungen der Fehler auftritt, macht ihn auch entweder bewust herbeiführbar oder bewusst vermeidbar. Das ist für einen Spieldurchlauf ein Fortschritt, finde ich.
"Haut die Säbel auffe Schnäbel."
Beiträge: 284
Themen: 2
Registriert seit: May 2020
Bewertung:
22
(15.02.2026, 08:25)Henne schrieb: Das war nur eine Warnung: Hab mir nachdem ich den Charaktergenerator weitestgehend fertig und verstanden hatte ein Video von zwei Gamern angesehen die mehrere Charaktere erstellt haben.
So ein Charakter für Schick ist aus meiner Sicht mittlerweile eine 14032-stellige Binärzahl.
Computerspiele sind „Smoke and Mirrors“: kunstvolle Täuschungen, die den Spieler mit trickreichen Illusionen in eine Welt hineinziehen. Wie bei einem Zaubertrick muss man sich dabei selbst fragen, ob man wirklich verstehen möchte, was dahintersteckt; und ob man bereit ist, damit die Illusion zu brechen.
Ich persönlich finde es unglaublich unterhaltsam, mit diesem Hintergrundwissen in neue Spiele hineinzuschnuppern. Oft kommt bei mir nun sofort dieser Aha-Moment: Ah, so haben die das gelöst. Gleichzeitig bleibt aber auch immer Platz für Erstaunen, und für echten Respekt, wenn ich neue Techniken, clevere Ideen oder ungewöhnliche Ansätze entdecke.
Manchmal ist diese Entzauberung allerdings auch ein bisschen traurig. In Riva zum Beispiel: Nachdem ich zu oft out-of-bounds über die Karten geflogen bin und alles aus unmöglichen Perspektiven gesehen habe, ist das Spiel nicht mehr dasselbe. Das Neue mischt sich mit den alten Erinnerungen, und die Atmosphäre, die das Spiel ursprünglich durch seinen Rahmen erzeugt hat, ist beschädigt. Das verhedderte Bild der Stadt, mit all seinen verwirrenden Verbindungen, verliert seinen Zauber, sobald man nicht mehr im „Tunnelblick“ steckt und nicht länger am Boden gefangen ist.
Ich glaube, wir graben schon seit Jahrzehnten an diesen Spielen: Viel Rauch hat sich verzogen, und die meisten Spiegel sind längst demontiert. Das ist gut so und unterstreicht, welche Arbeit dieses Forum hier geleistet hat.
Beiträge: 2.223
Themen: 31
Registriert seit: Mar 2013
Bewertung:
15
Vielleicht verhält es sich ein bisschen so wie bei einem Musiker, der ein Musikstück dann vielleicht nicht mehr nur genießen kann wie es ist, sondern immer auf "sein" Instrument achtet, wie es gespielt wird, wann der Einsatz kommt usw.
Ich kann mir in jedem Fall vorstellen, dass sich der Blick auf ein Spiel sehr verändert wenn man den Code dahinter sieht und versteht und dann auch selbst herstellen kann. Und wenn man im Wortsinne noch hinter die Kulissen schaut und dann einen anderen Blick auf die Spielwelt hat, dann wirkt es ganz bestimmt nochmal anders.
On topic: ich habe es nun noch ein paar Mal probiert und konnte insgesamt 3x die Stelle überwinden. Dabei hatte ich stets:
- neu geladen nachdem die Stelle passiert wurde (also nicht hin und zurück)
- die 6er-Gruppe getrennt (1/5), aber auf der selben Stelle stehen gelassen (direkt nördlich der Position 6)
- mit dem einzelnen Helden gespielt und ihm in 2 Fällen des Erfolgs das zuvor genannte Werkzeug im Inventar belassen - in einem Fall aber überhaupt kein Werkzeug
- dem einzelnen Helden das Travia-Amulett gegeben damit er nicht verhungert / verdurstet
Aufgefallen ist mir, dass das Durchschreiten nach spätestens 20 Versuchen erfolgte, aber immer nur dann wenn die abgetrennte Gruppe Schaden durch Verhungern / Verdursten nahm (und damit ich die ganzen Textboxen nicht wegklicken muss, hatte ich die Gruppe getrennt, dann kommen die Textboxen ja nicht).
Ich hatte auch jedem der Helden mal das Travia-Amulett ins Inventar geHext, dann klappte es nicht mit dem Durschschreiten (egal ob Gruppe getrennt oder nicht). Aber das mag alles auch Zufall sein bei der geringen Testzeit (ca. 30 Minuten insgesamt).
"Alrik war durstig und hat getrunken."
Beiträge: 284
Themen: 2
Registriert seit: May 2020
Bewertung:
22
16.02.2026, 18:00
(Dieser Beitrag wurde zuletzt bearbeitet: 16.02.2026, 19:06 von cmfrydos.)
Eine mögliche Ursache für den Bug könnte sein, dass gs_dng_handled_pos nach dem fehlgeschlagenen Betreten fälschlich auf das verschüttete Feld gesetzt bleibt, obwohl die Gruppe per gs_x_target_bak/gs_y_target_bak wieder zurückgesetzt wird.
2-Schritt-Hypothese:
1) Man läuft gegen das Geröll → Dialog erscheint → das Spiel setzt die Gruppe zurück, merkt sich aber trotzdem das Geröll-Feld als „bereits behandelt“ (gs_dng_handled_pos = pos).
2) Läuft man direkt im nächsten Tick erneut vorwärts, landet die Gruppe wieder auf demselben Feld, aber die Abfrage pos != gs_dng_handled_pos greift dann nicht mehr → der Blockier-/Rollback-Code wird übersprungen → man kommt (selten) durch.
Ich habe allerdings noch keine Zeit gefunden, das gezielt im Debugger in der Praxis zu testen.
Edit: Wenn man mehrmals vorwärts drückt und die Taste während der Zeit des „Freiräumversuchs“ gedrückt hält, kommt man bei 1000 Cycles (im Originalspiel) recht zuverlässig schon nach wenigen Versuchen durch, ohne dass besonderes Gepäck oder ein Gruppensplitting nötig wären. Daher halte ich die Hypothese für plausibel und vermute, dass es am Ende vor allem eine Timing-Frage ist, ob man durchkommt.
Das oben beschriebene Gruppensplitting kann dabei durchaus trotzdem einen Einfluss haben: Die zweite Gruppe, zusammen mit den Hunger-/Durst-Abfragen, könnte das Timing verschieben und dadurch das „Treffen“ des allerersten Ticks begünstigen. Das möchte ich nicht ausschließen.
Leider kenne ich mich mit den DOS-Eingabefunktionen nicht gut genug aus, um konkret zu erklären, was genau passieren muss, damit direkt im ersten Frame (nach dem Freilegungsversuch) bereits ein UP (↑) gelesen wird.
Beiträge: 14.570
Themen: 98
Registriert seit: Sep 2006
Bewertung:
48
16.02.2026, 20:03
(Dieser Beitrag wurde zuletzt bearbeitet: 16.02.2026, 20:06 von Zurgrimm.)
(15.02.2026, 13:56)cmfrydos schrieb: Ich glaube, wir graben schon seit Jahrzehnten an diesen Spielen: Viel Rauch hat sich verzogen, und die meisten Spiegel sind längst demontiert. Ganz gewiss. Da hier aber gerade so viele begabte Code-Analysten und Mysterien-Lüfter unterwegs sind, möchte ich den kleinen Off-Topic-Hinweis einwerfen, dass auch die Verfallene Herberge noch einige ungelöste Mysterien birgt (der Sphärenriss gehört bekanntlich nicht mehr dazu). Ich hatte die verbleibenden Mysterien jenes Dungeons hier einmal zusammengefasst. Einige sind in dem dortigen Thread nachfolgend gelöst bzw diskutiert worden (insb. Kühlraum, Falltür). Aber einiges ist noch immer offen. Mich würden Erklärungen dazu sehr interessieren.
"Haut die Säbel auffe Schnäbel."
Beiträge: 284
Themen: 2
Registriert seit: May 2020
Bewertung:
22
17.02.2026, 10:06
(Dieser Beitrag wurde zuletzt bearbeitet: 17.02.2026, 11:46 von cmfrydos.)
Okay, etwas munterer habe ich heute einen erneuten Test unternommen, mit dem ich reproduzierbar bereits im jeweils 1. Versuch durch die Stelle hindurchkomme:
Während die Zeit vergeht, drückt und hält man „Vorwärts“ (↑) gedrückt und hält die Taste so lange, bis alle Textboxen dadurch „geskippt“ werden und sich die Gruppe über die Geröllstelle hinweg bewegt hat.
Alle Versuche habe ich mittels dieses „mechanischen“ Verfahrens unternommen:
- Bei 1000 Cycles klappt dies bei mir (GOG-Version) immer beim ersten Versuch (ca. 10× getestet).
- Bei 2000 Cycles klappt es bei mir etwa nach jedem 2. bis 4. Anlauf (ebenfalls ca. 10× getestet).
#Versuche: 2, 2, 4, 4, 2, 2, 2, 2, 1, 2, 4, 3
- Bei 3000+ Cycles ist es mir bislang nach über 30 Anläufen kein einziges Mal gelungen.
Cycles reduzieren kann man (in der „normalen“ DOSBox) mit Ctrl+F11, erhöhen mit Ctrl+F12.
Daneben ist mir Folgendes aufgefallen:
Ich nehme in Versuchen, die „scheitern“ (bei 3000+ Cycles), keinerlei Hunger-/Durstschaden. Wochenlang „gräbt“ die Gruppe, ohne ein einziges Mal LE zu verlieren. Es kommen wiederholt Boxen, dass die Gruppe am Verdursten sei, allerdings ohne Schadenswürfe.
Schaden dagegen NEHME ich in meinen 2000-Cycle-Versuchen immer, und zwar ab dem 2. Versuch (dann geht bei meinem Save das Trinken aus). Schaden zu nehmen bzw. den Codepfad zu nehmen, der potenziell Schaden verursacht, scheint somit (zumindest korrelativ) auch der zu sein, der einen über das Feld schreiten lässt (??).
Wie so oft scheint man bei der Analyse eines Bugs über weitere zu stolpern. xD
Die offenen Fragen der Verfallenen Herberge hören sich auch sehr spannend an und ließen sich nun, da der Code mit BrightEyes vorliegt, sicherlich handfester erörtern; aber alles zu seiner Zeit.
Erst einmal bin ich gespannt, was sich hinter diesem Bug in der Zwingfeste verbirgt und ob ihr die Ergebnisse reproduzieren könnt.
Nach erneutem Blick auf die von siebenstreich identifizierte Codestelle und weiterer Reduktion der Cycles auf 500 schaffe ich es nun auch deterministisch am eingestürzten Gang vorbei, und zwar ohne Freilegungsversuch: Man muss nahezu gleichzeitig ENTER (für „Nein“) und „Vorwärts“ (↑) drücken. Dann geht es auch ohne den Zeitverlust, den das Freilegen sonst mit sich bringt.
Beiträge: 2.223
Themen: 31
Registriert seit: Mar 2013
Bewertung:
15
Kann ich so bestätigen, ich habe durch die von Dir beschriebene Methode (Textboxen wegdrücken und gleichzeitig vorwärts laufen) direkt das Hindernis durchqueren können, einmal von Nord nach Süd und direkt im Anschluss wieder zurück (bei den von mir gewählten 10.000 Cycles war es zwar etwas hektisch mit den Tasten, aber es ging).
Schaden durch Hunger / Durst gab es bei den später gescheiterten Versuchen bei mir aber trotzdem.
"Alrik war durstig und hat getrunken."
Beiträge: 284
Themen: 2
Registriert seit: May 2020
Bewertung:
22
Danke fürs Testen, Alrik Alrikson! Nur damit ich dich richtig verstehe: Meinst du die Exploit-Variante, bei der man „Ja“ drückt und danach Vorwärts gedrückt hält?
Interessant ist, dass es bei dir mit 10 000 Cycles klappt, vielleicht fehlt mir einfach der Skill. Denn obwohl ich definitiv noch innerhalb der „Warteperiode“ (während die Zeit vergeht) Vorwärts drücke, greift es bei mir irgendwie nicht; nur bei niedrigen Cycles.
Ich weiß aber auch noch nicht, ob man hier besonders früh oder eher spät anfangen sollte zu drücken. Warum dieses Verhalten überhaupt von den Cycles abhängt, ist mir ebenfalls noch ein Rätsel: Bei „Nein“ + Vorwärts ist klar, dass niedrige Cycles mehr zeitlichen Spielraum geben, weil das Spiel langsamer läuft. Aber warum es bei „Ja“ + Vorwärts halten mal klappt und mal nicht, und scheinbar auch noch cycle-abhängig ist, ist mir (neben dem von mir beobachteten Hunger-/Durst-Schadens-Bug) noch võllig unklar. Das müsste man wohl separat und in Ruhe analysieren und testen.
Beiträge: 2.223
Themen: 31
Registriert seit: Mar 2013
Bewertung:
15
Keine Ursache! Und genau, ich drücke auf "Ja", drücke dann die Textboxen (Hunger / Durst) weg, gleichzeitig bzw. immer wieder so schnell es eben geht auf die Vorwärtstaste.
"Alrik war durstig und hat getrunken."
Beiträge: 502
Themen: 14
Registriert seit: Oct 2020
Bewertung:
11
Gestern, 11:27
(Dieser Beitrag wurde zuletzt bearbeitet: Gestern, 11:41 von siebenstreich.)
Das sind sehr spannende Erkenntnisse, cmfrydos!
Die Abfrage "pos != gs_dng_handled_pos" steht ja bei fast allen besonderen Dungeon-Positionen. Gut möglich, dass da noch weitere ähnlich gelagerte Bugs/Exploits existieren.
Beiträge: 284
Themen: 2
Registriert seit: May 2020
Bewertung:
22
Vor 8 Stunden
(Dieser Beitrag wurde zuletzt bearbeitet: Vor 8 Stunden von cmfrydos.)
Ja, es scheint sich um eine ganze Klasse von Events zu handeln, die mittels
if (pos/target_pos == EVENT && pos/target_pos != gs_dng_handled_pos)
geschützt werden, dann einen Rollback ausführen, aber anschließend
gs_dng_handled_pos = pos;
setzen, wobei pos zu diesem Zeitpunkt noch immer die Position des Event-Feldes ist (also nicht der zurückgesetzten *_bak -Position). Wenn dann im nächsten Frame erneut ein „Vorwärts“ gelesen wird, wird das Event dadurch ggf. geskippt.
Bugfix könnte sein, gs_dng_handled_pos bei dieser Art von Events nicht auf pos, sondern auf *_bak (oder irgendein invalides Feld) zu setzen.
Oder genauer:
gs_dng_handled_pos nur dann auf pos zu setzen, wenn pos nach der Event-Behandlung immer noch das aktuelle Feld der Gruppe ist.
Folgende Liste an weiteren möglichen Stellen habe ich dabei gefunden (alles ungetestet, ohne Anspruch auf Vollständigkeit):
- Tiles in der Piratenhöhle von Manrek [26], die einem die Möglichkeit geben, die Gruppe ertrinken zu lassen. Ohne besonderen Effekt, außer dass man auf ebenjenen Feldern landen könnte. Ggf. eine weitere Möglichkeit, neben https://www.crystals-dsa-foren.de/showth...#pid172247, in der Piratenhöhle out-of-bounds zu kommen?
- Schwarzmagierruine Ebene 1: Feld mit Treppe [5] sowie Exit-Feld [1] (per Exploit sollte man lediglich auf dem Feld stehen bleiben können, ohne besonderen Effekt).
- In Hyggeliks Ruine: Wenn man die verfluchten Goldmünzen einsteckt und anschließend auf das Exit-Tile läuft. Zwar kann man das Dungeon so nicht verlassen, aber man könnte auf dem Exit-Tile zu stehen kommen und damit möglicherweise out-of-bounds gehen. Technisch gesprochen könnte man so also vielleicht die Absteckung der Ruine verlassen, praktisch (Dungeon-Wechsel / zurück zur Reisekarte) vermutlich nicht.
- Die Zwergenmine unter Oberorken: bei den Events zur Gangfreilegung [5] (wenn man „Nein“ wählt) und die Illusionswand auf der zweiten Ebene [6]. Hier gibt es ja schon den Lösungstipp „mehrmals dagegenlaufen“. Durch den Exploit kann man sich ggf. lediglich die Versuche sparen (indem man „Nein“ wählt) und damit potenziellen Schaden, den diese Versuche verursachen.
- Die Gänge in der Premmine [9], die sich freilegen lassen: hier spart einem der Exploit ggf. die Wartezeit von 2–6h. Allerdings werden die Gänge dadurch nicht freigelegt, sondern sind per Exploit lediglich ohne Freilegung passierbar.
Etwas antiklimaktisch, dass man diese Stellen umgehen kann, indem man nur schnell bzw. penetrant genug ist, dem Spiel seinen Willen aufzuzwingen. Letztlich ist es ja kein Actionspiel wie z.B. Super Mario, wo es (mit dem Walljump) ähnliche „frame-perfect“ Tricks gibt, die man dem Spiel damit eher verzeihen kann, bzw. die in späteren Teilen sogar zu einer beabsichtigten Mechanik wurden:
|