AOQML: Vereinfachgung der Entwicklung+Test von Questen

XML-Variante AOQML, ihre Möglichkeiten, Ergänzungen und Entwicklung...

Moderatoren: Ratsgruppe Programmierer, A-Team

AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon Lowlander » Sa 07 Aug, 2021 09:36

Auch mir schwebte schon länger eine Idee im Kopf herum, wie das Entwicklen und Testen von AOQML-Questen vereinfacht werden könnte, wenn man kein lokal laufendes Anatamar hat. In einem lokal laufenden Antamar kann man nämlich einfach eine neue Quest direkt aus dem Verzeichnis laufen lassen, in dem man sie auch bearbeitet. D.h. man ändert eine Szene, lädt die Seite neu, und schon wird die neue Version ausgeführt (den Cache, der sonst zuschlägt kann man dafür deaktivieren).

Im Chat kam ein Vorschlag von Helix, der viel einfacher ist als meine bisherigen Gedanken: Auf dem Testserver eine API bereitzustellen, mit den veränderte Dateien direkt in den Testserver übertragen werden können. Zusätzlich bräuchte man noch ein auf dem lokalen Computer laufendes Programm (theoretisch auch in den AOQML-Editor einbaubar), das veränderte Szenen-Dateien an die o.g. API schickt.

Ich könnte mir den Ablauf so vorstellen: Nach dem Hochladen einer Test-Quest würde man einen Link (URL) erhalten, die man zusammen mit dem lokalen Questverzeichnis dem vorgenannten lokal laufenden Programm übergibt:

aoqml-quest-test c:\daten\antamar\questen\meine-neue-quest https://spiel.antamar.org/api/test-ques ... -die-quest


Das Programm würde dann das angegeben Verzeichnis auf Änderungen überwachen und jede veränderte Datei über die angegebene API zum Testserver schicken.

Soweit erst einmal die grobe Skizze. was meint ihr dazu?

Grüße
... Lowlander
Lowlander
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 2259
Registriert: So 25 Nov, 2007 18:05
Wohnort: Hage/Ostfriesland
Heldenname: Markorka Faargh

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon lordhelix » Sa 07 Aug, 2021 11:21

Sehr gut. Ich weiß, dass du es auf dem Schirm hast, aber da es zu dem Thema gehört.

Es sollten nur *.xml beachtet werden, sowie *.jp(e)g und*.png. Vielleicht auch mit einer max. filesize. XML-Files sind in der Regel nur wenige KB groß, Bilder können komprimiert werden auf unter 3 MB.

Den File-Watcher würde ich in den Editor integrieren, da dieser genau weiß wann welche Datei bearbeitet wurde und dann den sync-prozess anstoßen kann. Ein weiteres Programm, ist eine weitere Hürde. Auch wenn wir verstehen wieso und weshalb, wird es die Mehrheit erstmal als Hürde erkennen und fragen weshalb.

Eine weitere Idee neben deiner genannten wäre:

Im Editor gemeinsam mit dem Filewatcher, einen Loginbereich einfügen, für die die es nutzen wollen. Die LogIn Daten sind jene vom Testserver. NUR die aktuell geöffnete Quest(en) im Editor wird gesynct. Oder wahlweise DropDown, welches Verzeichnis gerade gesynct werden soll.
Dann braucht man keine URLs, da es automatisch vom System gemacht wird. Du loggst dich Quasi nur im Editor mit TS-Zugang ein.

PS: Auch wenn es ungern in den Editor soll, bin ich der Meinung, es wäre die beste Lösung.
lordhelix
Ritter
Ritter
 
Beiträge: 616
Registriert: So 07 Apr, 2019 22:00
Heldenname: Helix

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon Lowlander » So 08 Aug, 2021 10:03

lordhelix hat geschrieben:Es sollten nur *.xml beachtet werden, sowie *.jp(e)g und*.png. Vielleicht auch mit einer max. filesize. XML-Files sind in der Regel nur wenige KB groß, Bilder können komprimiert werden auf unter 3 MB.


Ja, die Dateitypen würde ich sinnvoll einschränken. Bilder sind aber eigentlich schon komprimiert, ein zweites Komprimieren bringt nur noch marginale Verbesserung. Und Szenen sind so klein, dass sich dafür auch der Aufwand kaum lohnt. Aber ein Dateigrößen-Limit wäre wohl sinnvoll, um Unfälle und Schabernack zu verhindern.

lordhelix hat geschrieben:Den File-Watcher würde ich in den Editor integrieren, da dieser genau weiß wann welche Datei bearbeitet wurde und dann den sync-prozess anstoßen kann. Ein weiteres Programm, ist eine weitere Hürde. Auch wenn wir verstehen wieso und weshalb, wird es die Mehrheit erstmal als Hürde erkennen und fragen weshalb.


Ein Programm kann sich am Betriebssystem (Linux, Windows, MacOS etc.) für ein Verzeichnis anmelden und wird über jede Änderung informiert. Der Teil wäre also das kleinste Problem.

Aber vermutlich würde dieser Testmodus hauptsächlich von denen benutzt werden, die eh den AOQML-Editor benutzen. Andere (wie Tommek und ich), testen sowieso mit lokalem Antamar, was auch noch ein paar mehr Möglichkeiten eröffnet. Von daher wäre eine gute Integration in den AOQML-Editor wohl sinnvoll.

lordhelix hat geschrieben:Eine weitere Idee neben deiner genannten wäre:

Im Editor gemeinsam mit dem Filewatcher, einen Loginbereich einfügen, für die die es nutzen wollen. Die LogIn Daten sind jene vom Testserver. NUR die aktuell geöffnete Quest(en) im Editor wird gesynct. Oder wahlweise DropDown, welches Verzeichnis gerade gesynct werden soll.
Dann braucht man keine URLs, da es automatisch vom System gemacht wird. Du loggst dich Quasi nur im Editor mit TS-Zugang ein.


An den internen Abläufen würde sich damit ja nichts ändern, Antamar müsste trotzdem eine API und für die hochgeladene Quest dafür eine URL bereitstellen. Ich sehe eine solche Verbesserung daher eher als zweiten Schritt, sobald das grundsätzliche Verfahren funktioniert.

Der Aufwand schon für Schritt 1 wäre aber nicht zu unterschätzen, daher würde ich damit auch gar nicht erst anfange, bevor Tommek es nicht für gut befindet.
Lowlander
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 2259
Registriert: So 25 Nov, 2007 18:05
Wohnort: Hage/Ostfriesland
Heldenname: Markorka Faargh

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon Tommek » So 08 Aug, 2021 11:07

Ich könnte mir auch folgendes vorstellen:

Upload der aktuellen Quest aus dem Editor heraus und deaktivieren des Questcaches auf dem Testserver. Da wären die notigen Umbauten evtl etwas kleiner?
Benutzeravatar
Tommek
Site Admin
Site Admin
 
Beiträge: 7825
Registriert: Mi 17 Mai, 2006 22:40
Wohnort: Eodatia
Heldenname: Alrik Dormwald
Mitglied bei: Orkwacht

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon Lowlander » So 08 Aug, 2021 11:34

Tommek hat geschrieben:Ich könnte mir auch folgendes vorstellen:

Upload der aktuellen Quest aus dem Editor heraus und deaktivieren des Questcaches auf dem Testserver. Da wären die notigen Umbauten evtl etwas kleiner?


Also bei jeder Szenen-Änderung die Zip neu erstellen und komplett neu hochladen, die Quest dabei aber an der bisherigen Stelle weiterlaufen lassen?

Klar, das wäre deutlich einfacher, aber klingt nach einer recht großen Verzögerung nach jeder Änderung.

Ob ein immer deaktiver Questcache auf dem Testserver besser wäre oder nicht, da bin ich noch nicht sicher, außer beim Autor selbst. Denn wer nur testet, kann dadurch auch Effekte bekommen, die im echten Spiel gar nicht auftreten können. Das sähe ich eher als zusätzliches Feature, den Questcache Questspezifisch zu aktivieren/deaktiveren statt global.
Lowlander
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 2259
Registriert: So 25 Nov, 2007 18:05
Wohnort: Hage/Ostfriesland
Heldenname: Markorka Faargh

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon lordhelix » Mo 09 Aug, 2021 10:07

Lowlander hat geschrieben:
Ob ein immer deaktiver Questcache auf dem Testserver besser wäre oder nicht, da bin ich noch nicht sicher, außer beim Autor selbst. Denn wer nur testet, kann dadurch auch Effekte bekommen, die im echten Spiel gar nicht auftreten können.


Ich würde gerne 1:1 das Verhalten des Liveservers dargestellt bekommen, wo auch immer es möglich ist. Schließlich rechne ich damit das die Queste sich am Ende genauso verhält, wie sie es im Test auch tut.
lordhelix
Ritter
Ritter
 
Beiträge: 616
Registriert: So 07 Apr, 2019 22:00
Heldenname: Helix

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon Lowlander » Mo 09 Aug, 2021 12:33

lordhelix hat geschrieben:Ich würde gerne 1:1 das Verhalten des Liveservers dargestellt bekommen, wo auch immer es möglich ist. Schließlich rechne ich damit das die Queste sich am Ende genauso verhält, wie sie es im Test auch tut.


Szenen-Cache disabled fände ich auch nicht so gut, weil es die Tests verfälscht. Aber du unterschätzt vermutlich die Möglichkeit, während der Entwicklung jede Szene einfach direkt nochmal ausführen zu können. Aber das eine (Übertragung einzelner lokal geänderter Szenen an den Testserver) hat mit dem anderen (Möglichkeit den Szenen-Cache temporär zu deaktivieren) eigentlich wenig zu tun.
Lowlander
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 2259
Registriert: So 25 Nov, 2007 18:05
Wohnort: Hage/Ostfriesland
Heldenname: Markorka Faargh

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon lordhelix » Mo 09 Aug, 2021 12:38

Lowlander hat geschrieben:
Szenen-Cache disabled fände ich auch nicht so gut, weil es die Tests verfälscht. Aber du unterschätzt vermutlich die Möglichkeit, während der Entwicklung jede Szene einfach direkt nochmal ausführen zu können. Aber das eine (Übertragung einzelner lokal geänderter Szenen an den Testserver) hat mit dem anderen (Möglichkeit den Szenen-Cache temporär zu deaktivieren) eigentlich wenig zu tun.



Ich will beides in einem. Natürlich sollen Rechtschreibfehler sofort ausgebessert sein und nicht erst nach Neustart der Quest. Wenn das nur per disable cache geht, dann ist das so.
lordhelix
Ritter
Ritter
 
Beiträge: 616
Registriert: So 07 Apr, 2019 22:00
Heldenname: Helix

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon Lowlander » Do 12 Aug, 2021 20:02

Habe gerade die erste Szene beim Speichern im AOQML-Editor direkt auf einen lokal laufenden Antamar-Server hochgeladen. Ist aber alles, sowohl im Editor als auch in Antamar, noch ziemlich zurechtgefrickelt. Aber immerhin ein Durchstich.
Lowlander
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 2259
Registriert: So 25 Nov, 2007 18:05
Wohnort: Hage/Ostfriesland
Heldenname: Markorka Faargh

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon Lowlander » Sa 14 Aug, 2021 13:38

So, für die initiale Version des Szenen-Uploads gibt es einen Pull-Request im Antamar-Repository.

Derzeit können so nur Szenen hochgeladen werden, Grafikdateien müssen also schon vorhanden sein oder im Questupload mitgekommen sein.

Der dazu passende AOQML-Editor braucht noch etwas Feinschliff (z.B. sind Testserver und Username/Passwort noch hart verdrahtet für localhost :) ). Den mache ich morgen soweit fertig.

Stay tuned!
Lowlander
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 2259
Registriert: So 25 Nov, 2007 18:05
Wohnort: Hage/Ostfriesland
Heldenname: Markorka Faargh

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon Lowlander » So 15 Aug, 2021 13:33

So, falls Tommek die Server-Änderungen für den Szene-Upload auf den Test-Server bringt, hätte ich auch schon einmal eine AOQML-Editor Version 0.109-prerelease-01 dafür vorbereitet: https://repo.javagil.de/releases/aoqml-editor/
Lowlander
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 2259
Registriert: So 25 Nov, 2007 18:05
Wohnort: Hage/Ostfriesland
Heldenname: Markorka Faargh

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon Tommek » So 15 Aug, 2021 13:37

Moin,

ich habe beide Server aktualisiert.

Grüße,
Tommek
Benutzeravatar
Tommek
Site Admin
Site Admin
 
Beiträge: 7825
Registriert: Mi 17 Mai, 2006 22:40
Wohnort: Eodatia
Heldenname: Alrik Dormwald
Mitglied bei: Orkwacht

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon Lowlander » So 15 Aug, 2021 17:23

Tommek hat geschrieben:ich habe beide Server aktualisiert.


Super! Funktioniert auch. Das offizielle Release des dazu passenden AOQML-Editors ist nun auch verfügbar: https://repo.javagil.de/releases/aoqml-editor/ (Wer schon die Vorab-Version verwendet hat, muss das Passwort neu setzen.)

Und so funktioniert es:
  • Quest in Editor laden, mindestens ein Grundgerüst erstellen.
  • Per Menü "Quest / Quest zippen" bzw. "Quest / Quest direkt zippen" das Zipfile erstellen.
  • Die Quest per normalen Questupload auf den Testserver hochladen und die Quest starten.
  • Per Menü "Optionen / Einstellungen / Test-Server" die Zugangsdaten zum Testserver eingeben (das Passwort wird verschleiert gespeichert - ist aber ja eh nur ein Testserver). Dort auch den Szenen-Upload aktivieren. Das muss man nur grundsätzlich nur einmalig machen.
  • Eine Szene im Editor ändern und speichern => Wird automatisch auf den Testserver hochgeladen. Die aktualisierte Szene muss dann natürlich auf normalen Quest-Weg zur Ausführung kommen. Achtung: Der aktive Held muss derjenige sein, unter dem die Quest gestartet wurde!
  • Wenn man offline arbeiten will, insbesondere wenn man an anderen Questen offline arbeiten will, muss der Szenen-Upload wieder deaktiviert werden, sonst werden die Szenen in die falsche Quest auf dem Testserver geschrieben.

Klingt komplizierter als es in der Anwendung ist, hoffe ich. Und es ist nur die erste Version. Gleich liste ich ein paar Verbesserungen auf, die noch kommen.
Lowlander
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 2259
Registriert: So 25 Nov, 2007 18:05
Wohnort: Hage/Ostfriesland
Heldenname: Markorka Faargh

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon Lowlander » So 15 Aug, 2021 17:48

Lowlander hat geschrieben:Gleich liste ich ein paar Verbesserungen auf, die noch kommen.


Die geplanten Verbesserungen wären:
  • Questupload direkt integrieren. Da der Questupload einige Optionen hat und die Antwort bei Fehlern aber nicht gerade darauf ausgelegt ist von einem anderen Programm interpretiert zu werden, ist hierfür noch in Antamar einiges zu tun. (Dabei könnte der Editor sich auch gleich merken, unter welchem Helden die Quest hochgeladen wurde und im Folgenden immer richtig speichern, auch wenn der Spieler auf dem Testserver den Helden gewechselt hat.)
  • Szenen am Cache vorbei neu ausführen (evtl. per automatisch eingefügtem Debug-Code wie unten oder durch optionale Cache-Deaktivierung)
  • Löschen von Szenen-Dateien auch auf dem Test-Server.
  • Visualisieren, ob eine Szenen-Datei mit dem Test-Server synchron ist oder nicht.
  • Auch Grafik-Dateien innerhalb des Quest-Verzeichnisses auf den Test-Server synchronisieren können.

Was fällt euch sonst noch so ein?

Und noch ein sofort einsetzbarer Tipp:

Um Szenen am Cache vorbei direkt noch einmal ausführen zu können, damit Änderungen sofort wirksam werden, kann man folgenden Code ans Ende hängen:
Code: Alles auswählen
<debug>
    <div class="oog"><choice target="start">Szene am Cache vorbei erneut ausführen.</choice></div>
</debug>


Mit einem zusätzlichen param="..." könnte man dann auch zur Not über abfragen, ob die Szene über einen Reload neu geladen wurde. Denn man muss bedenken, dass auch Seiteneffekte (Variablen setzen etc.) neu ausgeführt wird.
Zuletzt geändert von Lowlander am So 15 Aug, 2021 17:52, insgesamt 1-mal geändert.
Grund: Heldwelchsel
Lowlander
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 2259
Registriert: So 25 Nov, 2007 18:05
Wohnort: Hage/Ostfriesland
Heldenname: Markorka Faargh

Re: AOQML: Vereinfachgung der Entwicklung+Test von Questen

Beitragvon Lowlander » So 15 Aug, 2021 17:49

Ach ja, nebenbei bemerkt: Auf dem richtigen Spielserver ist der Szenen-Upload unterbunden :D
Lowlander
:: Ratsmitglied :: Programmierung
:: Ratsmitglied :: Programmierung
 
Beiträge: 2259
Registriert: So 25 Nov, 2007 18:05
Wohnort: Hage/Ostfriesland
Heldenname: Markorka Faargh

Nächste

Zurück zu Questen, Abenteuer und Zufallsbegegnungen (inkl. AOQML)



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron