kreuvf / roll20-character-sheets

Kreuvf's fork of the Roll20 Character sheet templates. Do not work with my branches prefixed with "pre", I rebase and force-push them all the time. Check out the YouTube channel for videos on my pull requests.
https://www.youtube.com/user/Isurandil
MIT License
7 stars 6 forks source link

Codeorganisation #127

Closed Triqueon closed 1 year ago

Triqueon commented 1 year ago

Hi, nachdem wir der Tage eine neue DSA4 Rudne auf Roll20 angefangen haben, hab ich hier mal reingeschaut. Sehr cooles Projekt, vielen Dank für die unglaubliche Menge an Arbeit, die hier schon reingeflossen ist. Prinzipiell würde ich gerne mit dem ein oder anderen helfen. Allerdings hab ich gerade mal einen Blick in den Code geworfen und gesehen, dass das 26k Zeilen in einer einzelnen HTML Datei sind.

Da das brauchen wird da reinzufinden und selbst ein erster Blick schon sagt, dass da erhebliches Potenzial für mehr Strukturierung/Entfernung von Duplikation ist, ein paar Fragen:

Nochmal vielen Dank für das Charsheet :)

kreuvf commented 1 year ago

Wollte mich kurz melden, dass ich aktuell (~zwei Wochen) nicht dazu komme in der Tiefe auf deine Punkte einzugehen. Zu einem Teil deiner Fragen kann ich aber auf mein aktuellstes Video verweisen (Zitat aus dem Skript):

  • Wenn auch diese Knöpfe durch die Beta sind, gibt es wieder einiges unter der Haube zu tun, um neue Features von Roll20 nutzen zu können. Roll20 hat vor einiger Zeit bestimmte Vorgaben für Charakterbögen gelockert, allerdings müssen bestehende Bögen dafür einmal komplett durchgeschaut und überarbeitet werden. Das klingt nach mehr Aufwand als es ist; dass ich es bislang noch nicht gemacht habe, liegt schlicht und ergreifend daran, dass ich noch so viele Änderungen auf meinem Stapel hatte, die von der aktuellen Version ausgehen. Das Stichwort bei Roll20 lautet "legacy parsing".
  • Wenn ich dann sowieso dabei bin und am ganzen Charakterbogen Änderungen vornehme, kann ich auch noch eine andere größere und automatisiert vorzunehmende Änderung durchziehen, die über 10% der Dateigröße einspart. Danach ist es dann sinnvoll, aus der einen Riesen-HTML-Datei zumindest für die Entwicklung eine sinnvolle Aufteilung zu finden: HTML, Würfelvorlagen, Sheetworker Scripts, wobei jede dieser Dateien auch nochmal unterteilt werden könnte.
kreuvf commented 1 year ago

So, dann möchte ich deine Fragen mal beantworten :)

Sehr cooles Projekt, vielen Dank für die unglaubliche Menge an Arbeit, die hier schon reingeflossen ist.

Danke, aber ich habe den Großteil davon "nur" übernommen und verbessere jetzt Schritt für Schritt weiter und wage mich an immer größere Umstellungen.

Prinzipiell würde ich gerne mit dem ein oder anderen helfen.

Das ist immer gut und dann bist du in meinem Klon des Roll20-Repos vermutlich auch goldrichtig. :D

Allerdings hab ich gerade mal einen Blick in den Code geworfen und gesehen, dass das 26k Zeilen in einer einzelnen HTML Datei sind.

Dann hast du auch bereits die richtige Datei gefunden ^.^

  • Ist diese HTML Datei der Punkt an dem man arbeiten sollte oder ist die das Ergebnis davon dass irgendwas anderes zusammen"kompiliert" wird?

Ja, ist es. Und das ist auch supergrausig und wird nicht kompiliert. Ich plane für demnächst™, genau das aber zu machen: Aufteilung der Datei und dann gibt es eben mindestens drei einzelne Dateien, die via Makefile zusammengebaut werden. Die Makefile ist quasi schon fertig, weil ich die auch schon für meine Diss benutzt habe. Auf mehr Abhängigkeiten und Stackgröße habe ich auch wenig Lust. Das heißt aber nicht, dass ich mir Alternativen nicht wenigstens einmal anhöre/anschaue, also kannst du mir da auch ruhig etwas empfehlen. (Node.js und Co. sind aber definitiv raus.)

  • Besteht prinzipiell ein Interesse daran, PRs zu haben, die hier Abhilfe schaffen (ein erster Blick zeigte zB dass man ~2k Zeilen sparen könnte, wenn man die diversen Attributsdropdowns bei Talenten über JS generiert, statt denselben Codeblock mit variablem Default-Attribut ein paar 100mal im HTML stehen zu haben)?

Ja, PRs bitte gegen meinen Klon stellen, das würde mir sehr entgegenkommen. Darüber hinaus habe ich die eindringliche Bitte, vor Aufnahme der Arbeit mit mir abzusprechen, was gemacht werden soll. Aktuell habe ich keine Entwicklungsbranches, es könnte also prinzipiell alles verändert werden, ohne bei mir etwas zu brechen. Ich habe aber einen hohen Anspruch an die Entwicklung des Bogens: Änderungen dürfen nur aus technischen Gründen (aka Roll20 macht was kaputt) dazu führen, dass alte Funktionalität bricht, gibt daher auch etliche Legacy-Stellen im Code, die nur dafür sind, auch für Spieler, die das letzte Mal vor drei Jahren eingeloggt waren, Funktionalität zu erhalten.

  • Ist die Tatsache dass das eine Datei ist, ein Limit von Roll20, oder wäre es denkbar, zumindest JS auszulagern, oder sogar pro Sheet-Tab eine eigene Datei zu haben, die dann (auch vermutlich per JS) an der passenden Stelle included wird?

Ja, Roll20 trennt zwar HTML und CSS, aber die Idee wenigstens (eigentliches/richtiges) HTML, Roll Templates und Sheetworker Scripts als einzelne Dateien vorzuhalten, ist offenbar zu abwegig ;)

Nochmal vielen Dank für das Charsheet :)

Danke nicht nur mir, sondern auch all den anderen Entwicklern, die den Grundstein gelegt und ausgebaut haben :)

Solltest du noch Fragen haben, können wir uns gern im TS oder Mumble mal besprechen; Discord ist raus, zu große Datenkrake.

kreuvf commented 1 year ago

Closed, weil seit zwei Monaten ohne Reaktion. :disappointed: