Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Thema gestartet von: Bissiger Witzbold am 24. August 2016, 15:48:57

Titel: Problem mit Dialogen nach Konvertierung zu AGS 3.x
Beitrag von: Bissiger Witzbold am 24. August 2016, 15:48:57
Hallo miteinander.

Da es unter Windows 10 durchaus problematisch ist, die alten mit AGS 2.x erstellten Folgen vernünftig im Vollbild, mit richtiger Schrift und ohne Weichzeichner darzustellen, wollte ich meine Episoden nun endlich in die neuste AGS-Version konvertieren.

Bei "Maniac Ostern" hat das auch ohne allzu große Probleme geklappt, bei "Neue Abenteuer auf Terra" hingegen hab ich große Probleme bei den Dialogen.

Lorian beginnt viele seiner Dialoge mit einer Auswahlmöglichkeit, danach geht die Aktion weiter. Weil AGS den RunDialog-Befehl leider immer am Ende des Scripts und nicht an der vorgesehenen Stelle ausführt, und ich auch nicht alles danach in Dialog Requests schreiben wollte, was die Sache extrem unübersichtlicht macht, habe ich damals einfach mehrere Scripte hintereinander ausgeführt (Bei "talk to character" war zwei oder dreimal hintereinander "Run script" zugeordnet. Unter 2.62 hat das wunderbar funktioniert. Auch in der Konvertierung nach 2.72 klappt es, in 3.35 jedoch nicht mehr. Jetzt werden die Aktionen aus allen Scripts hintereinander ausgeführt und ganz am Ende dann alle Dialoge hintereinander.

Zum besseren Verständnis ein Beispiel. Bei Jeff war in 2.62 für die Aktion "Talk to character" zweimal "Run script" zugewiesen.

Im ersten Script passiert folgendes:
[ags]if (MovePlayer (62, 134)) { 
 FaceDirection(GetPlayerCharacter(),DIR_UP);
 RunDialog(1);
}[/ags]
Lorian geht zu Jeff und man kann einen Begrüßungssatz auswählen (wie "Ich bin ein Außerirdischer", "ich bin KEIN Außerirdischer" oder "Ich wollt ich wär ein Huhn". Danach kommt das zweite Script

[ags]DisplaySpeech(GetPlayerCharacter(),"Ich...");
 FaceDirection(JEFF,DIR_DOWN);
 DisplaySpeech(JEFF,"Hey, Dreiauge.");
 RunDialog(8);
[/ags]
Lorian sagt "Ich...", Jeff sagt "Hey, Dreiauge" und nun kann man zwischen den verschiedenen Gesprächthemen wählen.

Unter AGS 3.35 siehts nun so aus: Lorian geht zu Jeff, sagt automatisch "Ich...", Jeff sagt "Hey, Dreiauge" und erst jetzt kann man die Begrüßung wählen und direkt danach die Gesprächstehmen. Bei anderen Personen sind es bis zu 4 Scripte, da isses noch chaotischer.

Offenbar kann man im 3.x-Editor nur noch eine Aktion zuweisen und nicht mehrmals "Run script". Gibts da einen Trick, wie man AGS dennoch dazu bekommt die die Dialoge jeweils am Ende des einzelnen Scripts auszuführen statt am Ende aller Scripte, oder muß ich wirklich alles komplett umbauen?
Titel: Re: Problem mit Dialogen nach Konvertierung zu AGS 3.x
Beitrag von: Cone Arex am 24. August 2016, 16:08:16
Zitat
Offenbar kann man im 3.x-Editor nur noch eine Aktion zuweisen und nicht mehrmals "Run script".
Das ist korrekt. Die Möglichkeit wurde zusammen mit dem Feature, Aktionen über eine Klicki-Bunti-Oberfläche zusammenzustellen, entsorgt.

Zitat
Gibts da einen Trick, wie man AGS dennoch dazu bekommt die die Dialoge jeweils am Ende des einzelnen Scripts auszuführen statt am Ende aller Scripte, oder muß ich wirklich alles komplett umbauen?
Soweit wie ich das sehe, wirst du alles umbauen müssen. Irgendwelche Optionen sind nicht zu finden.

Zitat
Da es unter Windows 10 durchaus problematisch ist, die alten mit AGS 2.x erstellten Folgen vernünftig im Vollbild, mit richtiger Schrift und ohne Weichzeichner darzustellen, wollte ich meine Episoden nun endlich in die neuste AGS-Version konvertieren.
Warum die Episoden nicht unter der 2.72-Engine laufen lassen, statt sie zu konvertieren?
Titel: Re: Problem mit Dialogen nach Konvertierung zu AGS 3.x
Beitrag von: Tütensuppe am 24. August 2016, 16:36:01
Die 3er-Spiele machen weniger Probleme mit dem aktuellen Windows als die 2er-Spiele (auch 2.72), insofern ist die Konvertierung schon sinnvoll, wenn es ohne großen Aufwand machbar ist.

Nur für eine Konvertierung ohne inhaltliche Änderungen scheint es mir allerdings übertrieben großen Aufwand hineinzustecken, zumal dadurch die Gefahr besteht neue Fehlern einzubauen.
Titel: Re: Problem mit Dialogen nach Konvertierung zu AGS 3.x
Beitrag von: Bissiger Witzbold am 24. August 2016, 17:20:59
Warum die Episoden nicht unter der 2.72-Engine laufen lassen, statt sie zu konvertieren?

In 2.72 hab ich die Folge bereits konvertiert. Das läuft zwar halbwegs, aber mit 3.35 ist es bei mir im Vollbild schärfer und das Scrolling ist flüssiger. Außerdem hat AGS 2.72 bei meiner Folge Probleme mit einigen Midis, die dann komplett verstimmt klingen (in 2.62 klangen sie noch normal und in 3.35 auch wieder). Und wer weiß wie es in 5-10 Jahren aussieht, ob sich dann 2.72-Folgen genauso schlecht spielen lassen wie heute schon die 2.62-Folgen.

Die Möglichkeit wurde zusammen mit dem Feature, Aktionen über eine Klicki-Bunti-Oberfläche zusammenzustellen, entsorgt.

Hat AGS 3.x eigentlich auch irgendwelche Vorteile bei der Programmierung gegenüber 2.72? Die veränderte Oberfläche erscheint mir deutlich unübersichtlicher und umständlicher und hilfreiche Funktionen (wie eben mehrere Scripts bei einer Aktion) gehen nun nicht mehr. Man kann zwar mehrere Scripte parallel offen haben, aber das scheint mir die Nachteile nicht aufzuwiegen.
Titel: Re: Problem mit Dialogen nach Konvertierung zu AGS 3.x
Beitrag von: Cmdr am 24. August 2016, 18:13:16
Ich hatte dir schon ausführlich geantwortet, aber der schlechte Empfang in der Ubahn hat die Nachricht zerstört :(

Hier nochmal die Kurzfassung :
Ich benutze dafür Callroomscript.
Titel: Re: Problem mit Dialogen nach Konvertierung zu AGS 3.x
Beitrag von: Bissiger Witzbold am 25. August 2016, 18:42:20
Und noch eine Sache die ich nicht verstehe:
Wenn ich bei dem in 3.35 konvertierten Spiel im WinSetup Haken bei "Enable Side Borders" UND "Enable top & bottom borders" setze, dann wird die Sprechschrift falsch abgezeigt: dünner und ohne schwarzen Rahmen, quasi wie die Schrift in der Statuszeile. Woran liegt das denn schon wieder und wie behebt man es?
Titel: Re: Problem mit Dialogen nach Konvertierung zu AGS 3.x
Beitrag von: Cone Arex am 25. August 2016, 19:18:59
In den General Settings Anti-Alias-TTF-Fonts auf false setzen. Das Thema hatten wir schon ein paar Mal.

Zitat
Die veränderte Oberfläche erscheint mir deutlich unübersichtlicher und umständlicher
Und weil es ja so umständlich ist, verwenden soviele Entwicklungstools ein ähnliches Oberflächendesign? AGS 3 ist Microsofts Visual Studio nachempfunden, welches Industriestandard ist und u.a. wegen seiner Oberfläche geliebt wird.

Zitat
hilfreiche Funktionen (wie eben mehrere Scripts bei einer Aktion) gehen nun nicht mehr.
Offensichtlich war die Verwendung mehrerer Scripte nicht von Chris Jones vorgesehen. Und wenn man nicht standardkonform codet, kann man nicht erwarten dass der Code bei der nächsten Version nicht bricht.

Zitat
Hat AGS 3.x eigentlich auch irgendwelche Vorteile bei der Programmierung gegenüber 2.72?
Keine nervigen Fenster mehr, die die restliche Oberfläche blockieren, keine Script-Ausschnitte in eigenen Fenstern mehr, Views, Charaktere etc. sind löschbar, transparente Hotspots/Regions, zoombarer Room-Editor, ordentliche Bezeichnungen für Raumfunktionen, frei konfigurierbare Oberfläche, neues Musiksystem mit benennbaren Audiodateien, Ordner für Views/Items, erhöhte oder ganz aufgehobene Limits für bestimmte Dinge (GUIs, Objects...) muss ich wirklich weitermachen?
Titel: Re: Problem mit Dialogen nach Konvertierung zu AGS 3.x
Beitrag von: Bissiger Witzbold am 25. August 2016, 19:45:56
In den General Settings Anti-Alias-TTF-Fonts auf false setzen. Das Thema hatten wir schon ein paar Mal.
Das hab ich schon längst gemacht, vorher war der Schatten ein Pixel verschoben. Wenn ich die beiden Haken nicht gesetzt habe (oder nur einen davon), dann wird auch alles richtig angezeigt. Ich will aber wissen, ob AGS auch die richtige Schriftart anzeigen kann, wenn der Spieler diese beiden Haken setzt.

Zitat
Offensichtlich war die Verwendung mehrerer Scripte nicht von Chris Jones vorgesehen. Und wenn man nicht standardkonform codet, kann man nicht erwarten dass der Code bei der nächsten Version nicht bricht.
Ich weiß nicht was CJ vorgesehen hat. Aber es ging jedenfalls und war die perfekte Methode, um den Run-Dialog-wird-immer-erst-am-Ende-ausgeführt-Bug zu umgehen, wurde sogar in mehreren Tutorials empfohlen.

Zitat
zoombarer Room-Editor, erhöhte oder ganz aufgehobene Limits für bestimmte Dinge (GUIs, Objects...)
Okay, ein paar Sachen sind offenbar tatsächlich verbessert ("keine Script-Ausschnitte in eigenen Fenstern mehr" zähle ich nicht dazu). Aber insgesamt scheint es mir doch einfacher weiter mit 2.72 zu arbeiten und erst ganz am Ende das Spiel in 3.x zu konvertieren.
Titel: Re: Problem mit Dialogen nach Konvertierung zu AGS 3.x
Beitrag von: Cone Arex am 25. August 2016, 19:50:10
Zitat
Das hab ich schon längst gemacht, vorher war der Schatten ein Pixel verschoben. Wenn ich die beiden Haken nicht gesetzt habe (oder nur einen davon), dann wird auch alles richtig angezeigt. Ich will aber wissen, ob AGS auch die richtige Schriftart anzeigen kann, wenn der Spieler diese beiden Haken setzt.
Dann kann ich dein Problem nicht reproduzieren. Bei mir sind die Haken gesetzt und es wird die richtige Schriftart verwendet.
Titel: Re: Problem mit Dialogen nach Konvertierung zu AGS 3.x
Beitrag von: KhrisMUC am 31. August 2016, 12:19:20
Hat AGS 3.x eigentlich auch irgendwelche Vorteile bei der Programmierung gegenüber 2.72? Die veränderte Oberfläche erscheint mir deutlich unübersichtlicher und umständlicher und hilfreiche Funktionen (wie eben mehrere Scripts bei einer Aktion) gehen nun nicht mehr. Man kann zwar mehrere Scripte parallel offen haben, aber das scheint mir die Nachteile nicht aufzuwiegen.
Waaaaaa.....?
Jemand, der frisch 3.X entdeckt hat und erstmal nur rummosert? Das ist mir ja mein Lebtag noch nicht untergekommen...
Du musst ja wirklich ein ganz sensibles Pflänzchen sein. Alle anderen, und zwar wirklich 99.99%, haben 3.X sofort mit Freudenschrei begrüßt und gelobt, und nur 0.01% haben sich erstmal beschwert wie Siebzigjährige, denen man zum Derrick kucken einen Flachbildschirm gekauft hat, weil die Röhre so grünstichig war, dass man schon nach zwei Minuten Augenkrebs bekommen hat. Oder Moment, eventuell war es auch genau andersrum... weiß ich nicht mehr genau.

Jedenfalls wollte ich nur erwähnen, dass einer der Vorteile von 3.X ist, dass man in Dialogskripten nun normale Skriptbefehle benutzen kann, wenn man sie um mindestens eine Leerstelle einrückt.
Es als Bug zu bezeichnen, dass Dialog.Start() erst am Ende einer Skriptfunktion ausgeführt wird, ist natürlich nur solange sinnvoll, wie man noch nie selbst ein Spiel programmiert hat. Und deswegen durchaus verständlich, keine Sorge.