IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Was ist mit Z in Gargoyle/Frotz/Bocfel los?
AntwortenNeues ThemaNeue Umfrage

Was ist mit Z in Gargoyle/Frotz/Bocfel los?

Geschrieben um 17:43 am 25.08.2013 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Ich bin neulich auf ein seltsames Phänomen gestoßen: Mit Gargoyle 2011.1 Linux/Windows funktioniert in keinem Z-Code-Spiel, das mit deform oder GerX compiliert wurde, das Kommando Z für WARTE.

Das Wort Z wird nicht verstanden, so als ob es nicht im Wörterbuch vorhanden sei. Gibt man jedoch das Z mit einem Leerzeichen davor ein, funktioniert der Befehl ganz normal, d.h. "Die Zeit verstreicht." Es existiert also sehr wohl der Wörterbucheintrag für Z.

Kann jemand dieses Verhalten bestätigen? Ist das vielleicht ein Fehler in Bocfel (Wirklich? Bockfell? Frotzbockfell?)? Mit anderen Interpretern (Windows Frotz und Parchment) habe ich das nicht beobachten können.

Was ist da bloß los? Ohne GerX oder deform wird Z problemlos verstanden.

Geschrieben um 23:10 am 25.08.2013 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Christian:

Was ist da bloß los?

Aaaargh! The road to hell is paved with good intentions. (And bad interpreters.)

Christian:

Ohne GerX oder deform wird Z problemlos verstanden.

Ich habe das von Dir beschriebene Verhalten mit einer Konsolen-Version ohne Glk nachvollziehen können. Allerdings liegt der Fehler nicht daran, dass deform/GerX eingebunden wurde, sondern dass die Spiele, die funktionieren, auf Englisch sind. Mit einem Minimalbeispiel konnte ich das Nichtverstehen von 'z' nämlich auch reproduzieren.

Um alte Infocom-Spiele zugänglich zu machen, werden nämlich die mittlerweise üblichen Abkürzungen 'z', 'x' und 'g' stillschweigend in 'wait', 'examine' und 'again' umgewandelt. Man kann dieses Verhalten mit der Option -x beim Programmaufruf aber unterbinden.

Wie man dem Gargoyle unter Windows sagt, dass diese Abkürzungen nicht ersetzt werden sollen, weiß ich nicht. Vielleicht kann man da was in der garglk.ini konfigurieren.

Frotz geht hier übrigens den umgekehrten Weg: Man kann diese Abkürzungen mit -x einschalten. Wesentlich besser, finde ich. (Außerdem: Wieso ersetzt Bocfel 'z' nur, wenn es direkt an erster Stelle steht? Eine durchaus übliche Eingabe wie "z. z. z" oder "hit troll. g. g" wird mit dieser Ersetzung jedenfalls nicht richtig verstanden. Dafür allerdings "put z, o and g on scrabble board".)

Mit gefällt auch, wie zugänglich der Interpreter ist. Alle wichtigen Informationen liegen offen vor einem - wenn man sich gerne durch C-Quelltexte wühlt.

Nachtrag: Es gibt eine man page, die man nach dem Installieren unter Linux auch mit "man bocfel" aufrufen kann. (Ich fände es trotzdem gut, wenn nicht erkannte Optionen eine Fehlermeldung verursachen würden und man sich mit --help oder so eine Liste der verfügbaren Optionen anzeigen lassen könnte.)

Dort heißt es dann:

man cocfel:

In the unlikely event that a game requires one of these letters [x, g, z. Anm. der Red.] for its own use, apart from an abbreviation, these abbreviations can be turned off with -x.

Jumping to conclusions nennt man das wohl: So wie das umgesetzt ist, wird 'z' einfach so in 'wait' umgewandelt, auch wenn es das Wort 'wait' im Vokabular des Spiels gar nicht gibt. Und damit wird dann eine gültige Vokabel annulliert. (Das macht Frotz allerdings auch, wenn die Abkürzungen eingeschaltet sind. Und bei Frotz hilft auch kein Leerzeichen wor dem Wort.)

Ich werde einmal ein Ticket aufmachen und vorschlagen, dass die Abkürzungen nur dann ersetzt werden sollen, wenn es die Ersetzung auch im Wörterbuch gibt.

Geschrieben um 14:01 am 26.08.2013 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Martin:

Um alte Infocom-Spiele zugänglich zu machen, werden nämlich die mittlerweise üblichen Abkürzungen 'z', 'x' und 'g' stillschweigend in 'wait', 'examine' und 'again' umgewandelt. Man kann dieses Verhalten mit der Option -x beim Programmaufruf aber unterbinden.

Aha! Das ist ja interessant, danke für die Erklärung. Vielleicht sollten wir dann die Vokabeln 'wait', 'examine' und 'again' -- zumindest zeitweise, bis sich da was geändert hat -- wieder ins Lexikon der deutschen Lib mit aufnehmen, um einer derartigen Interpreter-Praxis zu begegnen?

Geschrieben um 15:27 am 26.08.2013 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Christian:

Vielleicht sollten wir dann die Vokabeln 'wait', 'examine' und 'again' -- zumindest zeitweise, bis sich da was geändert hat -- wieder ins Lexikon der deutschen Lib mit aufnehmen, um einer derartigen Interpreter-Praxis zu begegnen?

Hmmm. Eigentlich ist für mich die Sache klar: Der Fehler liegt auf Seiten des Interpreters und dort sollte er auch behoben werden.

Andererseits ist Gargoyle ein beliebter Interpreter, der viele verschiedene Formate abspielen kann. Ich selbst nutze ihn auch gerne. (Allerdings nicht so gerne, dass ich ihn alle naslang aktualisieren würde: In meinem Z-Maschinenraum läuft noch Frotz.)

Dass 'z' in einem weit verbreiteten Interpreter nicht geht, fällt eh auf GerX zurück, egal, wo der Fehler nun liegt. Man kann zwar in der garglk.ini bzw. .garglkrc "terp frotz" und in .bocfelrc "disable_abbreviations" setzen, aber das ist für die Klick-Kundschaft nicht sehr bedienerfreundlich.

Da es kein Aufwand ist und man eigentlich auch nichts kaputt macht, könnte man also 'examine' und 'wait' als zusätzliche Verben definieren. Die Vokabel 'again' kennt GerX schon. Trotzdem ärgerlich, dass man kaputten Interpretern hinterherprogrammieren muss.

Geschrieben um 16:22 am 26.08.2013 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Martin:

Trotzdem ärgerlich, dass man kaputten Interpretern hinterherprogrammieren muss.

Stimmt. In diesem speziellen Fall müssen in GerX nur drei Zeilen geändert werden, das nehme ich dann mal in Kauf.

Im Rahmen der Textlastig-Podcasts hat sich jedoch herausgestellt, dass Spatterlight (iOS) Textboxen und wahrscheinlich auch nichtproportionalen Text überhaupt nicht ausgibt, sondern dem Spieler eine Fehlermeldung präsentiert. Das fällt dann alles auf die armen Textadventure-Autoren zurück, klar.

Edit 28.08.2013:

Martin:

Ich werde einmal ein Ticket aufmachen und vorschlagen, dass die Abkürzungen nur dann ersetzt werden sollen, wenn es die Ersetzung auch im Wörterbuch gibt.

Das klingt nach einer sehr guten Idee! Momentan ist es wirklich Murks.

AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz