IF-Forum

» IF-Forum - Autorencafé - Schreiben! - I7: Deutsche Extension -- aktuelle Beta-Version
AntwortenNeues ThemaNeue Umfrage
» Mehrere Seiten: 123

I7: Deutsche Extension -- aktuelle Beta-Version

Geschrieben um 09:52 am 16.02.2009 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Hallo, I7-Enthusiasten!

Für diejenigen, die schnell einen Überblick darüber bekommen wollen, wie Inform 7 aussieht, denen Schrödingers Katze aber etwas zu pointless ist, habe ich das (auch nicht gerade bahnbrechende) Jade-Beispiel für Inform 7 umgesetzt.

Oh, und ein paar Gedanken zu Projektarbeit mit Textadventures im Schulunterricht gibt's auch. Schade, dass die Seite mit den textadventures aber leer ist. Wahrscheinlich braucht der neue Jahrgang den Platz.

Geschrieben um 10:42 am 16.02.2009 | Zitat | Editieren | Löschen
Mario Donick
Mitglied
Bachelor Gumby
Beiträge: 57

Hallo Martin,

interessante Zusammenfassung des Schulprojektes. Ich denke, es kommt darauf an, wozu man IF nutzen will. Selbst IF zu erstellen ist m.E. nicht sinnvoll, wenn nicht vorher IF intensiv aktiv rezipiert wurde -- es ist, als wollte man eine Kurzgeschichte schreiben, hätte vorher aber nur Märchen gelesen und würde nun mit "Es war einmal ..." anfangen und dabei alle Merkmale einer Kurzgeschichte ignorieren.

Ich halte IF aber geeignet, 1. selbst als Literaturform thematisiert zu werden und 2. als Unterrichtsmaterial neben anderen (!) für bestimmte Themenfelder genutzt zu werden. Lernziele, die hinter dem selber-schreiben von IF steht, wird vermutlich im Rahmen eines Halbjahres nicht erreichbar sein. Im Informatik-Unterricht (Leistungskurs evtl.) könnte ich mir das noch vorstellen. Aber normale Schüler im Deutschkurs werden vermutlich froh sein, wenn sie überhaupt verstehen, wie sie "Hypertexte" mit IF-Systemen erstellen können.

Mario

Geschrieben um 15:40 am 16.02.2009 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Danke, Martin, für das Jade-Beispiel und die Kommentare dazu. (Dein neues Homepage-Design ist sehr ansprechend.) Ich würde das Beispiel gerne in die Extension mit aufnehmen, damit man da auch mal was etwas Elaborierteres ausprobieren kann.

Wenn man keine story headline angibt, so wie im Jade-Beispiel, dann steht in der Titelunterschrift momentan noch "An Interactive Fiction von Martin Oehm".

Edit: Das mit der Default-Story-Headline ist kniffliger als ich zunächst dachte. Die Konstante Headline wird in Output.i6t zwar als Default mit dem Wert 0 angelegt, aber compiliert wird die Konstante direkt von Natural Inform (NI), dem Compiler, der den temporären I6-Code erzeugt. Wenn keine story headline vom Autor angegeben wird, bekommt die Konstante Headline den Wert "An Interactive Fiction" -- und zwar irgendwo an einer unzugänglichen Stelle. Oder gibt es eine Geheimtür?

Ich habe verschiedene Dinge probiert: Headline mit einem anderen Default-Wert definiert, nämlich "Ein Textadventure". Das wird von NI galant ignoriert; in der Banner-Routine Headline testen, ob es den englischen Text enthält und dann den deutschen Text ausgeben. War auch nichts. Und noch ein paar Versuche, story headline veränderbar zu machen sind gescheitert. Story headline ist zwar eine "text variable", lässt sich aber nicht ändern, wenn ein Wert erst einmal zugewiesen ist. Molto strano. Eine Konstante that varies, aber eben not really.

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

ChristianB:

Ich würde das Beispiel gerne in die Extension mit aufnehmen, damit man da auch mal was etwas Elaborierteres ausprobieren kann.

Ja gerne, obwohl es so elaboriert ja auch nicht ist. Immerhin ist ein bisschen mehr "Action" dabei; die bisherigen Beispiele konzentireren sich doch eher auf die Ein- und Ausgabedefinitionen.

ChristianB:

Wenn man keine story headline angibt, so wie im Jade-Beispiel, dann steht in der Titelunterschrift momentan noch "An Interactive Fiction von Martin Oehm".

Okay, das ziehe ich noch nach.

Wie man die Default-Headline ändert, ist mir auch schleierhaft. Sie wird wohl von NI gesetzt, und dort steht sie auch drin. Wenn ich in ni.exe den String "An Interactive Fiction" durch "Ein Textadventure\0...." ersetze ("\0" ist das Null-Byte), dann klappt's, aber das kann ja nun nicht die Lösung sein.

Die ganzen "Bibliographic Constants" werden mit

{-call:compile_bibliographic_i6_constants}

erzeugt, das kommt direkt vor der Headline. Dabei werden aber wohl nur die Definitionen der NI-Source herangezogen, denn wenn ich die Konstante vorher definiere, gibt's hinterher einen Fehler, weil der Aufruf oben ebenfalls Constant und nicht etwa Default erzeugt. Und da ab dort die Headline definiert ist, nutzen auch nachfolgende Defaults nicht mehr.

Die Strings beim Drucken des Spielbanners zu überprüfen, ginge gewiss, aber wenn, dann nicht so:

if (Headline == "An Interactive Fiction) ...

Das ist immer falsch, weil hier ein neuer String "An Interactive ..." erzeugt wird und mit == die Adressen verglichen werden. Man müsste die Zeichen einzeln vergleichen und dazu den String in einen Hilfspuffer ausgeben, was unter z-Code und Glulx leider wieder anders aussieht. Gewiss gibt es eine solche Funktion schon (eine Schnellsuche mach 'strcmp' - so heißt diese Funktion in C - erzielt jedenfalls einen Treffer), aber da jetzt genau durchzusteigen, da ist es gewiss besser, dass man die Autoren dazu anhält, eine eigene Headline zu definieren.

Geschrieben um 11:32 am 17.02.2009 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Martin:

Ja gerne, obwohl es so elaboriert ja auch nicht ist.

Merci. Leider zeigt I7 Kommentare im Beispiel-Code nicht an (Windows). Deshalb gebe ich in der Kopfzeile einen Hinweis auf Deine kommentierte Fassung.

Martin:

Gewiss gibt es eine solche Funktion schon (eine Schnellsuche mach 'strcmp' - so heißt diese Funktion in C - erzielt jedenfalls einen Treffer), aber da jetzt genau durchzusteigen, da ist es gewiss besser, dass man die Autoren dazu anhält, eine eigene Headline zu definieren.

Tja, da wird es dem Inform-Übersetzer nicht leicht gemacht. Strcmp (aus der I6-Extension istring.h) hatte ich ich schon herangezogen, aber das funktionierte nicht wie gewünscht.

Ich werde vorerst den Hinweis, das der Autor eine individuelle story headline erstellen muss, in die Dokumentation mit aufnehmen.

Geschrieben um 12:45 am 17.02.2009 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Okay, ich habe einen Weg gefunden. Im Block "Banner" habe ich folgendes definiert:


Array HLAuxBuffer1 buffer 128;

Array HLAuxBuffer2 buffer 24;

[ __Print_Headline     l1 l2 i;

    VM_PrintToBuffer(HLAuxBuffer1, 128, Headline);

    VM_PrintToBuffer(HLAuxBuffer2, 24,

        "An Interactive Fiction");

   

    l1 = HLAuxBuffer1-->0;

    l2 = HLAuxBuffer2-->0;

   

    if (l1 ~= l2) {

        print (string) Headline;

        return;

    }

    for (i = 0 : i < l1 : i++) {

        if (HLAuxBuffer1->(i + 4) ~= HLAuxBuffer2->(i + 4)) {

            print (string) Headline;

            return;

        }

    }

    print (string) GERMAN_HEADLINE;

];```

und wo vorher "print (string) Headline;" stand, rufe ich diese neue Routine jetzt auf. Ganz ideal ist das alles aber noch nicht, denn ich definiere zwei weitere Textpuffer und blähe den eh schon nicht sehr schlanken I7-Code auf. Man könnte hier gewiss zwei schon genügend groß definierte Puffer, die es schon gibt, hernehmen.

Der zweite Puffer muss nur "An Interactive Fiction" aufnehmen können. Der erste Puffer kann aber theoretisch nicht groß genug sein, wie jeder feststellt, der folgendes einmal einsetzt:

**I7:**
> The story headline is "Ein interaktiver Versuchsballon, der nur gestartet wurde, um mal zu sehen wie das so ist mit den Headlines und so und der allen heimlichen GEZ-Hinterziehern gewidmet ist"

Außerdem steht in den iFiction-Metadaten weiterhin "An Interactive Fiction", wobei ich mir da eh nicht so sicher bin, wie man diese Daten auf Deustch sinnvoll belegt. Nimmt man eigene Deutsche Schlüsselwörter, kann man nicht mehr sprachübergreifend vergleichen. Nimmt man die englischen Schlüsselwörter, steht halt wieder irgendwas Englisches auf meinem schönen deutschen Textadventure. Vielleicht:

<genre>Mystery (Krimi)</genre>

<forgiveness>mild (nachsichtig)</forgiveness>



Oder halt genau andersherum: Krimi (Mystery). Oder Piktogramme, wie beim Fett- und Proteingehalt auf Lebensmitteln.

Okay, nach dieser kleinen Abschweifung wieder zurück zur Headline: Es ist, denke ich, besser Autoren dazu anzuhalten, eine Headline explizit anzugeben und in einem Aufwasch auch direkt alle anderen Metadaten brav in die Büchereikarte einzutragen.
Geschrieben um 13:49 am 17.02.2009 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Martin:

Okay, ich habe einen Weg gefunden.

Ah, so sieht das also aus, wenn man's richtig macht. Das ist doch eine ausgezeichnete Lösung, die ich gern aufnehmen möchte, bis es eine offizielle Möglichkeit gibt, die Default-Headline anzuzapfen. Dass dadurch zusätzliche Ressourcen verschleudert werden, finde ich nicht ganz so wichtig wie eine bequeme Benutzung der Extension, besonders für Einsteiger.

Edit: Ich werde zur Sicherheit erst einmal die von Dir neu definierten Puffer nehmen.

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

Update: GerX Beta 4.07 vom 17.02.2009.

  • Die Default-Story-Headline lautet nun "Ein Textadventure". Dank an Martin für den I6-Code.

  • Martins "Jade"-Beispiel eingefügt.

  • Die angezeigten Namen der Himmelsrichtungen nachgebessert.

  • Die Dokumentation ergänzt.

Die limitierte Länge der Story-Headline finde ich erstmal nicht weiter schlimm.

Geschrieben um 00:30 am 19.02.2009 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Update: GerX Beta 4.08 vom 18.02.2009.

  • Die Beispiele in der Doku können nun per Mausklick in den Quellcode eingefügt werden.

  • "Z" (für WARTE) und einige englische Metabefehle wieder als Vokabeln zugelassen.

  • [^] ist jetzt die einzige Möglichkeit, die flexible Adjektiv-Endung anzugeben. Die etwas inkonsequenten [-e] und [e] sind gestrichen, da die Adjektiv-Endung für alle möglichen korrekten Endungen stehen kann, und das drückt das unbestimmte [^] ganz gut aus.

Geschrieben um 17:39 am 21.02.2009 | Zitat | Editieren | Löschen
Mario Donick
Mitglied
Bachelor Gumby
Beiträge: 57

Hallo,

ich bin auf ein kleines Problem gestoßen:


Seitenstraße

Eine dunkle Straße.

Du siehst hier einen Müllcontainer &#40;der geschlossen ist&#41;.

>öffne den container.

Du öffnest den Müllcontainer und findest eine alte Zeitung darin.

>betritt den container.

Du steigst in den Müllcontainer.

In dem Müllcontainer siehst du eine alte Zeitung.

>verlasse den container.

Aber du bist gar nicht auf dem Müllcontainer.

>klettere aus dem container heraus.

Aber du bist gar nicht auf dem Müllcontainer.

Das heißt, ich kann in meinen Müllcontainer reinklettern, aber komme nicht wieder heraus. Woran liegt das? Hier die Definition des Müllcontainers:


A Muellcontainer is a male container in Seitenstrasse. It is fixed in place. It is openable, enterable and closed. The printed name is "Müllcontainer". Understand "Container" as Muellcontainer.

Das gleiche passiert übrigens auch im "Pointless Example", wenn ich in den Schrank gehe und ihn wieder verlassen will. :-)

Mario

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

Also, die Standard-Variante mit "raus" funktioniert:

Mein Testspiel:

test me

(Testing.)

[1] öffne den container

Du öffnest den Müllcontainer.

[2] geh hinein

Du steigst in den Müllcontainer.

[3] raus

Du steigst aus dem Müllcontainer.

Das Verb "verlass" ist momentan nicht dafür gemacht, Container zu verlassen; >verlass objekt triggert die Aktion getting off, und die bezieht sich auf das Verlassen von Supportern. Das ist inkonsequent. Ich überleg mir mal was.

Edit: So. "verlass [something]" ruft jetzt die neue Aktion exiting from auf. Die versucht exiting. Dieser Umweg ist notwendig, weil exiting kein Objekt haben darf. Exiting ist die Aktion, die wir brauchen, weil die beides kann, nämlich Container oder Supporter verlassen.

Mein Testspiel:

[1] öffne den container

Du öffnest den Müllcontainer.

[2] geh hinein

Du steigst in den Müllcontainer.

[3] verlass container

Du steigst aus dem Müllcontainer.

Eine neue Version Beta 4.09 vom 22.02.2009 ist hochgeladen.

Edit: Sorry, da hatte ich nicht alle relevanten Verben geändert. In der Beta 4.09.01 vom 22.02.2009 ist das korrigiert.

Edit 2: Banbury hat sich übrigens für einige Zeit vom I7-Projekt beurlauben lassen. Ich bin jetzt also für die nächste Zeit der einzige GerX-Bibliothekar. Umso mehr bitte ich Euch, mir jeden Fehler und jede Ungereimtheit zu melden. Danke!

Geschrieben um 21:43 am 23.02.2009 | Zitat | Editieren | Löschen
Mario Donick
Mitglied
Bachelor Gumby
Beiträge: 57

Danke Christian für die Mühen!

Ich hab schon wieder was. Folgende Definition:



A linkes Auge, a rechtes Auge, a Nase and a Mund are kinds of thing. The linkes Auge, rechtes Auge, Nase and Mund are parts of every Gesicht.```

Im Spiel:

```>betrachte linker arm

Du siehst nichts Besonderes an your linker Arm.

>betrachte rechter arm

Du siehst nichts Besonderes an your rechter Arm.

>betrachte mund

Du siehst nichts Besonderes an your Gesicht's Mund.

>betrachte linkes auge

Du siehst nichts Besonderes an your Gesicht's linkes Auge.```

Ich hätte nun gerne eine Ausgabe wie "Du siehst nichts Besonderes an deinem linken Arm." (Das ich dazu noch male/female definieren muss, sei mal dahingestellt). :)

Ich hoffe, ich verlange nicht zu viel oder nichts Ungewöhnliches ...
Geschrieben um 00:55 am 24.02.2009 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Hallo Mario,

erstmal zu den linken und rechten Gliedmaßen: Namen mit links und rechts müssen von Hand definiert werden, weil „linker“ nicht flektiert werden kann. Wie bei den Adjektiven dürfen bei der Definition keine Endungen verwendet werden.

The link Arm is a male thing. The printed name of link Arm is “link[^] Arm”.

Zu den Komponenten: Wenn du die Körperteile als Kinds of things und parts von Personen anlegst, werden Bezeichner und printed name usw. von NI erzeugt, zu dem wir keinen Zugang haben.

Jede Person in Deinem Beispiel bekommt z.B. eine Nase. Die heißt dann: your Gesicht’s Nase, Benno’s Gesicht’s Nase usw. Das ist ohnehin schlecht zu übersetzten: „Du kratzt dich an der Nase deines Gesichts.“ Hm.

Für die Methode, die Du momentan benutzt, habe ich keine Lösung parat. Vielleicht wird I7 da irgendwann noch aufgebohrt. Wenn du Körperteile der Spielerfigur definieren willst, kannst du auch den article yours benutzen.

The Nase is female scenery carried by the player. The article is yours.

Oder

The Nase is female part of the player. The description of the Nase is "Du siehst nichts Besonderes an deiner Nase." The article is yours.

Die Meldung “Du siehst nichts Besonderes …” gibt immer den bestimmten Artikel aus, also „… an der Nase.“, egal ob article yours ist, oder nicht. Da könntest du ja eine description für die Nase angeben, wie ich es oben gemacht habe.

Grüße,

Christian

Geschrieben um 08:27 am 24.02.2009 | Zitat | Editieren | Löschen
Mario Donick
Mitglied
Bachelor Gumby
Beiträge: 57

Ah. Okay. Ich hatte versucht, das Beispiel aus dem Inform 7 Recipe Book umzusetzen, aber wenn man auch einfach sagen kann, dass etwas Part of Player ist, ist das ja wesentlich einfacher. Danke :)

Geschrieben um 02:11 am 01.04.2009 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Update: GerX Version Beta 5.00 (2009-04-01)

Es gibt ein aktuelles deform-Update, da muss GerX so gut es geht hinterher:

  • Use explicit error messages. implementiert. Anstelle von "So etwas kanst du hier nicht sehen." und dergleichen kann man in der Fehlermeldung nun genau anzeigen lassen, welches Wort nicht stimmt. Also anstelle von "So etwas kannst du hier nicht sehen." z.B. "Ich kenne das Wort 'zuchtwachtel' nicht." oder "Ich verstehe 'bei' in diesem Zusammenhang nicht."

  • Das erweiterte Parsen ist in Vorbereitung.

Edit:

Update: GerX Version Beta 5.01 (2009-04-11)

  • Einen Fehler im Zusammenhang mit den nicht verschachtelten Listen korrigiert.

  • Einen Fehler im Zusammenhang mit den expliziten Fehlermeldungen vorläufig umgangen.

Geschrieben um 20:45 am 01.04.2009 | Zitat | Editieren | Löschen
Mario Donick
Mitglied
Bachelor Gumby
Beiträge: 57

Danke für die vielen Updates! Ich bin auch fleißig am Nutzen der Extension. Immer weiter so! :)

Geschrieben um 12:05 am 23.04.2009 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Heute ist es also soweit: Inform 7 hat eine neue Homepage:

http://inform7.com/

Und wie zum Ende dieses Monats erwartet gibt es auch eine neue Version: Build 5Z71.

Ob und wie die German-Extension jetzt noch funktioniert, werden wir in den nächsten Tagen prüfen und dann so schnell wie möglich für Aktualisierung sorgen.

Edit: Auf den ersten Blick ist alles OK. Build 5Z71 compiliert ohne Fehler durch.

Edit 2: Bei der Benutzung von Glulx gab's einen Fehler. Eine korrigierte Version Beta 5.01.01 ist hochgeladen.

Geschrieben um 13:34 am 04.05.2009 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Update: GerX Version Beta 5.02

  • Anpassungen an Build 5Z71.

  • NIMM ALLES & Co. funktionierte seit Build 5Z71 nicht mehr. Jetzt geht's wieder.

  • Wenn kein Titel angegeben wird, lautet der Titel jetzt "Willkommen" und nicht "Welcome".

  • Die Standard-Beschreibung des Spielers wird in der Release-Version eines Spiels jetzt auf Deutsch angezeigt.

  • kleinere Korrekturen bei den Verben.

  • Beispiele und Doku überarbeitet.

Edit: Update: GerX Version Beta 5.02.01

  • |PrintCommand| sagt jetzt "nach Norden gehen" und nicht "den Norden gehen"(zuvor nur in der Backup-Datei, deshalb wird das hiermit nachgeliefert).

Edit 2: Update: GerX Version Beta 5.02.02 (06.05.2009)

  • |NounDomain| überarbeitet.

  • |LanguageVerbMayBeName| funktioniert jetzt wie in deform.

Edit 3: Update: GerX Version Beta 5.02.03 (06.05.2009)

  • Eine Kleinigkeit von meiner ToDo-Liste hatte ich noch nicht erledigt (ein paar überflüssige Routinen streichen). Jetzt ist alles, was ich ursprünglich ändern wollte, auch in der richtigen Datei angekommen.

Edit 4: Update: GerX Version Beta 5.02.04 (09.05.2009)

  • Keine inhaltlichen Änderungen; ich bin jetzt endlich mal dazu gekommen, die Extension halbwegs übersichtlich zu gliedern und die Folgen der guerillamäßigen Entwicklung von GerX einigermaßen zu ordnen.

Edit 5: Update: GerX Version Beta 5.02.05 (12.05.2009)

  • Die deutschen Understand-Token überarbeitet.

Da es für den I7-Autor sehr umständlich ist, neue deutsche Understand-Token anzulegen, gibt es jetzt noch ein paar mehr als zuvor. So unter anderem [noun dagegen]; das wird im Standard-Vokabular nicht genutzt, denkbar wäre es jedoch, dass ein Autor eine Aktion in der Art von "klopfe gegen [something]" nebst "klopf [noun dagegen]" definieren möchte.

Edit 6: Update: GerX Version Beta 5.02.06 (14.05.2009)

  • Ein paar Fehler bei den Standardmeldungen korrigiert.
Geschrieben um 11:55 am 17.05.2009 | Zitat | Editieren | Löschen
Tanan
Mitglied
Prof Gumby
Beiträge: 404

Hallo Christian,

ich habe auch mal ein wenig mit Inform 7 rumprobiert und es macht mir großen Spaß. Vielen Dank für die deutsche Extension! Sie funktioniert schon sehr gut. Zwei Kleinigkeiten sind mir aufgefallen, wobei ich als Inform-Anfänger gar nicht weiß, ob das Probleme mit der Extension sind:

  • Die Standardantwort von "binde" (z.B. "binde seil an tisch") wird verschluckt.

  • "gehe raus" funktioniert nur manchmal:



Du kannst ein Hauptwort angeben.

>gehe norden

Du kannst nicht in diese Richtung gehen.

>gehe raus

Du kannst nicht in diese Richtung gehen.```

Zwei weitere Bugs waren eben noch da, aber die hast du schon selbst gefunden (hatte die Extension länger nicht aktualisiert). Gute Arbeit!

In Kürze werde ich dann meine ersten Versuchsergebnisse vorstellen...
Geschrieben um 10:18 am 21.05.2009 | Zitat | Editieren | Löschen
sk2k
Mitglied
Pupil Gumby
Beiträge: 14

Hallo,

hab mich extra registriert um mich für diese Erweiterung zu bedanken. Hätte nicht gedacht, dass sich jemand die Mühe macht, um Inform 7 auch für die dt. Sprache halbwegs nutzbar zu machen.

Danke. :)

MfG

sk2k

» Mehrere Seiten: 123
AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz