IF-Forum

» IF-Forum - Autorencafé - Schreiben! - deform - inoffizielle deutsche Inform-Lib
AntwortenNeues ThemaNeue Umfrage

deform - inoffizielle deutsche Inform-Lib

Geschrieben um 00:32 am 11.07.2005 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Hallo zusammen!

Es gibt eine inofizielle, von Grund auf auf Basis der englischen Lib 6/11 neu übersetzte Library für Inform. Ich freue mich, die erste, vermutlich noch etwas wackelige Release vorstellen zu können: deform.

Diese Lib bietet alle Neuerungen von 6/11, kompiliert auf Glulx und Z-Code und kann sogar (die meisten) Spiele, die mit inform-de 6/10 geschrieben wurden, kompilieren. Das Verhalten ist jedoch etwas anders, vor allem die Lib-Texte und einige Parser-Algorithmen wurden verändert, siehe hierzu die Kurzdoku.

Florians Beispiel Wilhlem Tell kompiliert und funktioniert. (Der Semmelknödel aus dem Jump Start Kit auch.) Ich habe das Beispiel aus dem DM4, Ruins übersetzt und auf der Homepage zur Verfügung gestellt.

Anmerkungen und Fehlermeldungen bitte an mich. Einige Dinge fehlen noch (changning Gender zum Beispiel) oder funktionieren noch nicht ganz (wie die Gruppierungen von Listen), aber das Gerüst steht.

Viel Spaß,

Martin

Geschrieben um 08:14 am 12.07.2005 | Zitat | Editieren | Löschen
mkalus
Mitglied
Master Gumby
Beiträge: 93

Martin:

Es gibt eine inofizielle, von Grund auf auf Basis der englischen Lib 6/11 neu übersetzte Library für Inform. Ich freue mich, die erste, vermutlich noch etwas wackelige Release vorstellen zu können: deform.

Du bist verrückt, Martin ;-)

Ok, ich werde mir dein Werk mal die nächsten Tage vornehmen und mal schauen, wo ich noch Änderungen finde. Dann können wir das Ganze ja bald zur offiziellen Lib erklären, oder?

Ciao,

Max.

Geschrieben um 18:02 am 12.07.2005 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Max:

Dann können wir das Ganze ja bald zur offiziellen Lib erklären, oder?

Da machst du es dir aber sehr leicht, oder?

Nein, deform bleibt das, was es ist: eine Übersetzung der englischen Lib ohne offiziellen Charakter. Mit dem Ziel, möglichst nahe an den Funktionalitäten der Original-Lib 6/11 zu sein, aber Parser und Textausgabe dem Deutschen anzupassen. (Und verwaltet von mir, damit ich Kontrolle habe darüber, was reinkommt und was nicht.) Wenn deform brauchbar ist und von einigen benutzt wird, freue ich mich. Das ist alles. Den Stempel "offiziell" braucht es dazu nicht.

Ob deform irgendwann einmal die Lib ist, die lieber und öfter benutzt wird als die "offizielle" 6/10, das steht auf einem anderen Blatt.

Außerdem hat deform noch keine Feuerprobe bestanden. Es hat kleinere Testbeispiele kompiliert, mehr nicht. Und der Härtetest durch einen Hardcore-Glulxie steht auch noch aus. Da wäre es wohl noch etwas vorschnell, deform in den Stand einer offiziellen Lib, oder gar der offiziellen Lib, zu erheben, oder?

Max:

Ok, ich werde mir dein Werk mal die nächsten Tage vornehmen und mal schauen, wo ich noch Änderungen finde.

Du bist wie alle anderen herzlich dazu eingeladen, mir deine Meinung, Fehler im Code oder Verbesserungsvorschläge mitzuteilen. Der Lektor von deform bist du nicht.

Geschrieben um 20:00 am 12.07.2005 | Zitat | Editieren | Löschen
mkalus
Mitglied
Master Gumby
Beiträge: 93

Martin:

Da machst du es dir aber sehr leicht, oder?

Upps - auf die Füße steigen wollte ich dir nicht...

Aber: Meinst du, es ist sinnvoll mehrere Inform-Übersetzungen nebeneinander anzubieten? Gerade Anfänger verwirrt so etwas eher.

Geschrieben um 21:20 am 13.07.2005 | Zitat | Editieren | Löschen
Gast
Gast

Wann tut sich denn bei TAG mal wieder was, Martin?

Geschrieben um 11:13 am 14.07.2005 | Zitat | Editieren | Löschen
Florian
Gast

Anonymous:

Wann tut sich denn bei TAG mal wieder was, Martin?

Wahrscheinlich, wenn ein TAG-Autor durch ein tolles Spiel mal beweist, dass das System noch genutzt wird.

(Sagt mir die Erfahrung, nicht Martin.)

Geschrieben um 17:41 am 14.07.2005 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Max:

Upps - auf die Füße steigen wollte ich dir nicht...

Schon gut.

Max:

Aber: Meinst du, es ist sinnvoll mehrere Inform-Übersetzungen nebeneinander anzubieten? Gerade Anfänger verwirrt so etwas eher.

Darüber hatte ich mir, ehrlich gesagt, noch gar keine Gedanken gemacht.

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

Es gibt eine neue Version von deform, in der einige Dinge korrigiert und einige erweitert sind. Insbesondere funktioniert jetzt der "changing gender".

Außerdem habe ich den etwas angestaubten Toyshop von Graham Nelson übersetzt. Der Quelltext ist ausführlich kommentiert, sowohl die reinen Inform-Besonderheiten als auch Dinge, die man in deform beachten muss.

Beides, Lib und Beispiel, findet man auf der Download-Seite von deform, die Kurzdoku ist auch aktualisiert worden.

660099 Ich sehe gerade, dass ich die Routine GenderNotice zwar erklärt, aber nicht implementiert habe. Das reiche ich in der nächsten Version nach. Wer in der Zwischenzeit experimetieren möchte benutzt diese hier:


[ GenderNotice o g;

    if (o provides changing_gender) o-changing_gender = g;

];
Geschrieben um 01:09 am 28.07.2005 | Zitat | Editieren | Löschen
olav.mueller
Mitglied
Pupil Gumby
Beiträge: 15

Wirklich sehr, sehr schön die deform-Lib. In vielen Punkten sehr elegant und vor allem übersichtlich geworden. Da steckt ne Menge Arbeit hinter.

Ein winziges Detail ist mir jedoch aufgefallen:

Beim Aufruf von Is_undo_word und den ganzen ähnlichen Funktionen sind die Umlaute noch nicht im Buffer ersetzt. Daher müssten diese Routinen auch auf Worte wie 'zurück' und 'rückgängig' testen anstatt nur die umschriebenen Versionen abzuprüfen.

Dann auch noch eine doofe Frage: Du schreibst, dass Du absichtlich von der NO_PUNCTUATION Möglichkeit Abstand genommen hast. Vielleicht habe ich die Synonyme nur noch nicht richtig verstanden, aber wie behandle ich damit beispielsweise so Sätze wie

krieger, wo ist dein schwert?

Ich bekomme spätestens bei dem Wort 'schwert?' ein Problem. Eigentlich ist das nämlich ein Topic über das sich meine NSC ganz gerne mit mir unterhalten ... muss ich jetzt alle Topics um <irgendeinwort>? ergänzen oder gibt es da eine elegantere Lösung (mit Synonymen)?

CU,

Olav

Geschrieben um 08:35 am 28.07.2005 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

olav.mueller:

Beim Aufruf von Is_undo_word und den ganzen ähnlichen Funktionen sind die Umlaute noch nicht im Buffer ersetzt. Daher müssten diese Routinen auch auf Worte wie 'zurück' und 'rückgängig' testen anstatt nur die umschriebenen Versionen abzuprüfen.

Okay, danke. Werde ich ändern. (Das ist ja das unglückliche an den ganzen *_WDs, sie werden oft außerhalb des normalen Parsers untersucht.)

olav.mueller:

Dann auch noch eine doofe Frage: Du schreibst, dass Du absichtlich von der NO_PUNCTUATION Möglichkeit Abstand genommen hast.

Vielleicht habe ich NO_PUNCTUATION nicht richtig verstanden. Es hat nur die nicht als einzelnes Wort verstandenen Zeichen wie Fragezeichen und Ausrufezeichen herausgestnommen? Dann könnte man es tatsächlich wieder einführen.

olav.mueller:

Ich bekomme spätestens bei dem Wort 'schwert?' ein Problem. Eigentlich ist das nämlich ein Topic über das sich meine NSC ganz gerne mit mir unterhalten ... muss ich jetzt alle Topics um <irgendeinwort>? ergänzen oder gibt es da eine elegantere Lösung (mit Synonymen)?

Das DM schlägt tatsächlich vor, die Wörter mit Fragezeichen zu definieren (vgl. §32, S. 233). Das halte ich aber für Quatsch.

Mit Synonymen kannst du hier nichts machen, mit Synonymen kann man nur vorgegebene Wörter ersetzen, wie 'bis', 'auf' -> 'außer'. Wenn CompoundTails implementiert ist (was es aber noch nicht ist), könntest du das Fragezeichen hinten abschneiden und damit 'schwert?' in 'schwert' und '?' aufteilen. (Ich habe mir überlegt, dass die Trennung in den Compund-Feldern ohne Bindestrich läuft, wenn man als zweite Angabe eins vorgibt und dass das abgespaltene Wort in der zweiten Angabe auch explizit angegeben werden kann.)

Es wäre schön, wenn man die Möglichkeit hätte, selbst Wörter als word separators zu definieren. Das geht aber meines Wissens nicht.

Außerden sehe ich, dass ich dem Autoren gar keine Möglichkeit gelassen habe, selbst in die Informisierung einzugreifen. Dazu sollte es wohl zwei Einhänger, PreInformese und PostInformese, geben, in denen der Spieler selbst noch Dinge machen kann (wie zum Beispiel Frage- und Ausrufezeichen zu behandeln).

Danke für das Feedback. NO_PUNCTUATION hat diese Zeichen komplett herausgeschmissen, oder? Und nicht etwa durch Punkte ersetzt? Muss ich mal schauen.

Geschrieben um 00:53 am 29.07.2005 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

So, neue Version ist hochgeladen.

Um die Satzzeichen "?" und "!" zu behandeln, gibt es jetzt drei Möglichkeiten (vier, wenn man die Nicht-Bahendlung dazuzählt). Mit IGNORE_PUNCTUATION oder NO_PUNCTUATION löscht man die Satzzeichen und ersetzt sie durch Leerzeichen. Mit REPLACE_PUNCTUATION werden die Ausrufe- und Fragezeichen durch Punkte ersetzt. Mit SEPARATE_PUNCTUATION wird vor und hinter die Ausrufe- und Fragezeichen ein Leerzeichen eingefügt, auf diese Weise sind diese Satzzeichen immer eigene Wörter, wie Punkte, Kommas und Anführungszeichen. Welche Zeichen von den Punctuation-Regeln betroffen sind, bestimmt man mit der Routine Is_Punctuation(char), die man ersetzen kann. Diese Möglichkeiten sind experimentell, Fedback darüber, welche Methode sinnvoll erscheint, ist gerne gesehen.

Mit einer weiteren Konstante, COMPATIBILITY_MODE, werden, so weit es geht, alle Routinen und Konstanten der offiziellen Lib angepasst, so dass man bereits geschriebene Spiele (hoffentlich) schneller übertragen kann, wenn man will. Diese Konstante habe ich eingefügt in den Quelltext von Frank Borgers Eden und es hat anstandslos kompiliert, inklusive der GInfo-Pakete.

Die oben erwähnten CompoundTails sind ebenfalls implementiert. Die Doku ist allerdings nur im beiliegenden Textfile auf dem aktuellen Stand.

Geschrieben um 08:32 am 29.07.2005 | Zitat | Editieren | Löschen
olav.mueller
Mitglied
Pupil Gumby
Beiträge: 15

Martin:

So, neue Version ist hochgeladen.

Hm ... wenn ich auf die download Seite gehe, steht da zwar, dass die Version vom 29. sein sollte, die heruntergeladene Datei ist aber immer noch die vorige ... Cachefehler im Browser? ;-)

CU,

Olav

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

olav.mueller:

Hm ... wenn ich auf die download Seite gehe, steht da zwar, dass die Version vom 29. sein sollte, die heruntergeladene Datei ist aber immer noch die vorige ... Cachefehler im Browser? ;-)

Nee, wohl eher ein Fehler von mir. War wohl gestern abend zu spät. Oder zu schwül. Oder beides.

Muss dich also leider auf heute Abend vertrösten.

Edit: Jetzt ist die Lib oben. Sie sollte 140k groß sein.

(Es war wohl tatsächlich zu spät - ich hatte die Lib unter dem Namen deform..zip hochgeladen - mit zwei Punkten.)

Geschrieben um 22:56 am 31.07.2005 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Hallo,

und wieder gibt es eine neue Version von deform, diesmal hoffentlich korrekt hochgeladen (143k).

Die wichtigsten Neuerungen sind:

  • Möglichkeit, Infinitivsätze einzugeben: tuer aufmachen. nach draussen gehen. rasenmaeher ausschalten.
  • Der Lookahead bei [multiinside] und [multiexcept] ist erweitert worden. Ich hoffe, jetzt klappt das 'nimm alles aus kuehlschrank' wieder. Ich hatte es mit dem Token [dative] kapputtgemacht.
  • Neben den Tokens [noun_damit], [noun_daran] usw. gibt es nun für einige Varianten auch das Äquivalent [held_damit], das sicherstellt, dass der Spieler das Objekt bei sich hat und auch, wie das normale [held], ein implizites Aufheben auslöst. (Oh Gott! Generationen von Spielen hattes eine Sicherheitslücke. :-)
  • Die Grammatik für Consult ist überarbeitet worden, so dass man auch 'schlag wallenstein darin nach' sagen kann.
  • Solange es keine weiteren Einwände gibt, ist der ANIMA_PE auf zwei heruntergestuft worden. Das scheint zu funktionieren.
Geschrieben um 22:38 am 12.08.2005 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Hallo!

Eine neue Version ist verfügbar. Gefixt sind einige obskureb Dinge mit verb_word, ein Bug, der die CompoundHeads/Tails beschränkt hat und die Adjektive funktionieren jetzt auch wieder wie sie sollen.

Für Interessierte gibt es auch das Adventure In der Waage (im Original Balances), ein weiteres Beispiel für Inform, bei dem heftige Parsertricks angewandt werden - gefrotzte und nicht gefrotzte weiße Würfel mit verschiedenen Namen, Kupfer-, Gold- und Silbermünzen, nummerierte Lose und so'n Zeug. Wie immer im Download-Bereich.

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

Es gibt wieder eine neue Version, in der hauptsächlich Fehler bei den Library Messages gefixt worden sind. Die andere größere Änderung ist die Umbenennung der globalen Variable output_case in das bereits in der Lib vorhendene short_name_case, um deform kompatibler zur OriginalLib zu machen. Außerdem sollte, wer eigene Listen schreibt, nun nicht mehr den Fall an WriteListFrom, sondern an die neue Routine WriteListFromcase übergeben.

Frank Gerbig hat sich die Mühe gemacht, und In der Waage überarbeitet, dort gibt es also auch eine neue Version.

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

Hallo, Martin, nur eine Kleinigkeit: Mir ist eben aufgefallen, dass die erste Ebene des Inventars nicht mehr eingerückt wird, ganz gleich welchen Wert INVENTORY_INDENT hat (mit deiner deform-Version v. 21.08.05). Alle folgenden Ebenen werden entsprechend weit eingerückt. Ich fand's eigentlich ganz hübsch, wie es vorher war. Oder hab ich was kaputtgefummelt?

Grüße, CB

Geschrieben um 17:17 am 22.08.2005 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

ChristianB:

Oder hab ich was kaputtgefummelt?

Im Zweifelsfall bin der Kaputtfummler ich - ich denke, das liegt an der neuen Funktion WriteListFromCase, die die Einrückung nicht korrekt übergibt. Danke!

Edit: Okay, eine neue Version ist hochgeladen, in der dieses Problem sowie einige kleinere Dinge in GermanG.h repariert sind. Außerdem ist die Online-Doku überarbeitet und aktualisiert worden.

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