Forum moved to if-forum.org
Autor Nachricht
<  Übersetzung eines Spiels
Mischa
BeitragVerfasst am: Sa, 1 Feb 2014 - 13:45  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 05.03.2008
Beiträge: 285
Wohnort: Wien

Wie würdet ihr eine Übersetzung eines (Inform 6) Spiels angehen?

Den kompletten Source-Code kopieren und dann übersetzen?
(Hätte den Nachteil, dass man möglicherweise das gleiche Spiel zweimal parallel warten muss!)

Oder alle Texte in einem Spiel per Sprach-Switch unterbringen?
(Scheint mir recht komplex...)

Es gibt ja eine Compileroption, um Texte aus dem Spiel zu exportieren.
Gibt's das auch in die andere Richtung? :-)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hannes
BeitragVerfasst am: Sa, 1 Feb 2014 - 13:57  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.03.2010
Beiträge: 660

Ich habe das per Versionsverwaltungssystem gehandhabt: Zwei Branches, zwischen denen ich per eingebauter Merge-Funktion rein die Spiellogik betreffende Änderungen pflege, während Strings und Schlüsselworte natürlich unterschiedlich sind.

Martin empfiehlt auf seiner Seite dagegen ja die Pseudo-Präcompiler-Option.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Martin
BeitragVerfasst am: So, 2 Feb 2014 - 19:53  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München

Hannes hat folgendes geschrieben:
Martin empfiehlt auf seiner Seite dagegen ja die Pseudo-Präcompiler-Option.

Ach, ich empfehle die eigentlich nicht. Die Seiten über Übersetzung sind aus dieser unseligen und schon lange verschollenen Google-Gruppe Rakonto Interaktiva entstanden. Die Teilnehmer wollten das so und das durch die vielen Sprachdefinitionen extrem unübersichtliche Jade-Beispiel war eher ein Projekt, wo jeder mal was beitragen konnte. Bei zwei Sprachen geht's aber vielleicht.

Ich hatte mir einmal ein System, das ähnlich wie gettext arbeitet, überlegt, was aber eher kompliziert geworden wäre.

Man hätte den Quelltext gescannt und daraus ein Skelett für die Spiellogik und eine Sprachdatei extrahiert. Die Sprachdatei wird übersetzt und dan in das Skelett zurückgeführt.

Man kann allerdings nicht alle Texte einfach so übersetzen, weil durch die komische I6-Print-Syntax die Texte nicht schön gekapselt sind. Außerdem sollte man alle Properties, die mit der Eingabe und mit der Ausgabe des Objektnamens zu tun haben, zusammenfassen.

Aus dem I6-Original

Code:
Object black_book "schwarz@00 Buch"
    has neuter
    with name 'schwarz' 'buch'
    with description
        "Das schwarze Buch ist in einer dir unbekannten
        Schrift geschrieben."
    with before [;
            Take, Remove:
                deadflag = 1;
                print "Dich trifft der Blitz, als du das Buch
                    aufheben willst.";
                rtrue;
        ]
    ;

würden das Skelett

Code:
Object black_book
    ${BLACK_BOOK_INPUT}
    ${BLACK_BOOK_OUTPUT}
    ${BLACK_BOOK_DESCRIPTION}
    with before [;
            Take, Remove:
                deadflag = 1;
                ${BLACK_BOOK_TEXT_1}
                rtrue;
        ]
    ;

und die Sprachdatei

Code:
${BLACK_BOOK_INPUT}
!   with name 'schwarz' 'buch'

${BLACK_BOOK_OUTPUT}
!   "schwarz@00Buch"
!   has neuter

${BLACK_BOOK_DESCRIPTION}
!   with description
!       "Das schwarze Buch ist in einer dir unbekannten
!       Schrift geschrieben."

${BLACK_BOOK_TEXT_1}
!   print "Dich trifft der Blitz, als du das Buch
!                   aufheben willst.";

extrahiert. Die Sprachdatei muss man dann übersetzen:

Code:
${BLACK_BOOK_INPUT}
!   with name 'schwarz' 'buch'
    with name 'black' 'book'

${BLACK_BOOK_OUTPUT}
!   "schwarz@00Buch"
!   has neuter
    "black book"

Wie gesagt, ich hatte das überlegt, mehr nicht, denn durch die nicht sehr einheitliche I6-Syntax wird das sehr verwirrend. Und ein Übersetzer muss auch I6 können. Und wenn sich die Spiellogik im Original ändert, braucht man eh wieder eine Versionskontrolle.

Lange Rede, kurzer Sinn: Parallele Versionen, deren Logik dann abgeglichen wird, ist gewiss die einfachere Variante.

Mischa hat folgendes geschrieben:
Es gibt ja eine Compileroption, um Texte aus dem Spiel zu exportieren. Gibt's das auch in die andere Richtung? :-)

Das wäre gar nicht so dumm, aber es hat dieselben Probleme wie oben beschrieben: Man muss bei Textadventures die Eingabe und die Ausgabe übersetzen und zur Ausgabe gehören halt auch Dinge wie Genus und besondere Artikel, und und und.
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde (MEZ)

Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Seite 1 von 1
if-de :: Forum Foren-Übersicht  >  Dies & Das

Neues Thema eröffnen   Neue Antwort erstellen


 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Kontakt: Administrator

Powered by phpBB and NoseBleed v1.05