Featurewünsche für LegacyClonk

Featurewunsch #7 von Funni: Autorenfeld in den Einstellungen.
Da die Registrierprüffunktion außer Kraft gesetzt ist, gibt es keinen Autor mehr, insbesondere beim Abspeichern von Spielständen. Ein Feld in den Einstellungen zum Eingeben eines Autornamens wäre nicht schlecht. Standard könnte der Benutzername des Rechners sein. Da der Editor davon nicht betroffen ist, kann das ja hinten angestellt werden.

Featurewunsch #8 von Funni: Auto-Nicht-Bereit
Aus aktuellem Anlass: Wenn man aus dem Spiel für eine Zeit von sagen wir mal 20 Sekunden raustabbt oder der Bildschrimschoner reingeht sollte der Client als nicht mehr Bereit gekennzeichnet sein.

Auch könnte die Runde automatisch starten sobald alle Teilnehmer “Bereit” aktiviert haben, den Host zum Abbrechen des Timers und /start 0 zu zwingen ist unnötig und kann von der Engine abgenommen werden.

1 „Gefällt mir“

Featurewunsch #9 von Funni: Hintergrundbild des Packs auf allen Clients…
…sobald sie das Pack geladen haben. Sollte doch machbar sein.

EDIT: Steht bereits auf @Fulgen’s Todoliste

Dann braucht der Host aber auch einen Bereit button und Clients ohne Spieler dürfen nicht beachtet werden.

Steht auf meiner Todoliste.

das kann man daran koppeln ob der Timer zum Rundenstart aktiv ist oder nicht - nur wenn ein Timer läuft, würde das Bereit-Signal aller Clienten den sofortigen Start auslösen.

Der Host benötigt keinen Bereit-Button - da er den Timer angestoßen hat ist er offensichtlich bereit.
Dafür könnte beim Host der Runde starten-Button blinken wenn bei inaktivem Timer alle Clienten Bereitschaft signalisieren.

Auf Nicht-Legacy Clonk-Spieler braucht man dabei keine Rücksicht nehmen da man mit ihnen sowieso nicht spielen kann.

Ahso, hatte das so verstanden, dass der Timer automatisch startet. Dann ist meine Aussage natürlich murks, aber trotzdem dürften Clients ohne Spieler nicht beachtet werden oder? Der Host startet ja nicht sofort, sodass jeder Zeit zum joinen haben sollte.

wenn ein Timer läuft, würde das Bereit-Signal aller Clienten den sofortigen Start auslösen.

Was ist dann der Sinn des Timers?

Wird (gibt es schon?) es eine offizielle Servervariante (also ohne X11-Context, etc.), oder muss man die sich selber bauen? Da hätte ich nämlich den Wunsch, dass die Ein-/Ausgabe vielleicht in so was wie JSON, … kodiert ist. Würde Dinge einfacher machen z.B. bei Usernamen mit Doppelpunkten…

Muss man selber bauen (in CMake USE_CONSOLE aktivieren).

Ein eigenes Format für Serverbuildausgaben gibt es bereits, ist allerdings noch in keinem öffentlich Repository zu finden, weil es erst besprochen werden muss.

Gut dann mal schauen, wie ich es in einen Docker-Container rein bekomme.

Denkt an so was wie eine Ping aufruf und Rückgabe des momentanen Framecounters, damit man schauen kann, ob ein Script steck geblieben ist/der Server abgestürzt ist.

Featurewunsch #10 von Funni:
Erkennung der Spracheinstellung des Betriebssystems und Frage nach Wechsel zur Betriebsystemsprache (z.B. beim Start), sollte diese in zukünftigen Versionen verfügbar sein.

Hinweistext jeweils in alter und neuer Sprache, mit “nicht mehr anzeigen”-option, die einen Registrywert setzt und in den Einstellungen zurücksetzbar ist.

Wie sieht es mit einem Skalierungsmodus aus, wenn man Clonk auf höher auflösenden Displays spielt (alles was irgendwie größer ist als 1080p), oder das Display auch ein physisch kleiner wird, wird doch alles recht klein und muss die auflösung runter stellen, wodurch das bild meist nur unscharf wird oder auch ein beim Anwendungswechsel ein umschalten der Auflösung ausgelöst wird.

ich würde gerne Clonk einfach in der nativen Auflösung betreiben können und das Spiel einfach in einem 2x-Faktor.
Hier wäre auch eine Trennung von Spiel und Nutzeroberfläche wünschenswert, sodass das Spiel und die drumherum liegende UI unabhängig voneinander skalieren, damit z.B. das Hauptmenü oder die Kontextmenüs pixelgenau angezeigt werden während das gesamte Ingamegeschehen in zweifacher Skalierung läuft

Das gibt es schon in der neuesten Version: LegacyClonk ist da! (Community-Update für Clonk Rage)

oh das hab ich wohl überlesen, war der Meinung ich hätte nichts übersehen
Ok grade mal ausprobiert, ist so gesehen fast das was ich meinte, es wird halt alle gestreckt.

Besser wäre halt wenn die Skalierung für Menüs unabhängig davon einstellbar wäre. Ich nehme mal an muss dafür muss man das halbe Rendering auseinander nehmen, damit das klappt.

Ich habe “Nicht Interpolieren” eingeschaltet, dennoch sind zumindest in menüs elemente unscharf um Spiel die Landschaft passt aber, das mit den Menüs kann aber auch einfach an der Qualität der Texturen liegen

Bei welche Auflösung (bzw. Pixeldichte) spielst du? Machen die winzige UI-Elemente keine Schwierigkeiten?

Zumindest die Schrift wird meine ich in voller Auflösung gerendert. Die restlichen Elemente sind leider tatsächlich nur in niedriger Auflösung vorhanden.

Nein (noch) wird die Schrift nicht in nativer Auflösung gerendert.

Interpolieren ist bei aktiver Skalierung immer aktiv, weil sonst der Text in nicht-nativer Auflösung und auch einige Grafiken bei manchen Skalierungsfaktoren extrem pixelig sind.

Genau das ist eigentlich nicht gewünscht, weil sonst die UI-Elemente so winzig sind (siehe auch @Luchs Antwort). Das sollte aber besser sein sobald die Schrift mit voller Auflösung gerendert wird.

Vergleiche folgende 2 Screenshots (Der zweite ist eine unfertige experimentelle Implementierung):


27" auf 1440 das müssten um 96dpi oder so sein, also grade so an der Obergrenze das Text ohne Skalierung gut zu lesen ist aber Clonks sind auf dem Bild dann doch etwas klein.

Interessant wird so eine Unabhängige skalierung dann denke ich bei auf auflösungen wie 2160p
wenn das Spiel am bessten auf 300% läuft die Ui aber nur auf 200% weiil sie sonst einfach zu groß wird

Ich greife diesen Satz einfach mal auf, da mir die letzten Tage schon einige Spieler untergekommen sind, die sich weigern, die neuesten Änderungen anzunehmen.

Und das finde ich schade.

Dass unterschiedliche Engineversionen untereinander als inkompatibel behandelt werden, ist auf RWD-Code zurückzuführen. Warum? Nun, sicher nicht, um die Spieler zu ärgern, sondern, weil es schlicht und ergreifend notwendig ist. Denn die Engines sind zumeist inkompatibel, und es wäre eine Zumutung, dass die Devs jede einzelne Enginekombination testen hätten müssen. Soweit zur Geschichte, die vermutlich keinen einzelnen Clonker interessiert, weil CR gar keine Updates und OC welche in Jahresabständen erhalten hat.

Warum wird dieses Update nicht unter [330] weitergeführt? Weil es genug Änderungen gibt, um eine neue Version zu rechtfertigen. Skalierung statt schwachsinniger Auflösungseinstellung die im Jahr 2019 zu Zeiten von HiDPI sowieso zum Scheitern verurteilt ist. Endlich Desyncfixes, die vielleicht sogar LZB ermöglichen. Verwendbare DebugRecs. Müssen wir dies wirklich unter 330 laufen lassen? Oder, anders gefragt, müssen wir wirklich alle Änderungen kompatibel halten? Was ist mit Netzwerkcodeänderungen, oder nehmen wir sogar - hypothetisch - an, -optimierungen. Müssen wir sämtliche Binärpakete kompatibel halten und einen Overhead wie bei Luchs’ Netpuncher einbauen?

Ein Beispiel:
Der Lobbybereitcode läuft über einen extremst unschönen Hack mit dem CUID-Feld, nur um Kompatibilität mit bestehenden Engines beizubehalten. Wie sollen wir unsere Arbeit tun, wenn wir jede erdenkliche Änderung in irgendwelche Hacks verpacken müssen, damit Vanilla-330 mit einigen Sicherheitslücken noch verwendet werden kann?

Und sagt jetzt nicht, damit würden Spieler verscheucht werden. Das Update steht im Forum. Das Update steht in der MOTD. Das Update steht auf der Clonkspot-Startseite. Wir haben von keinem gehört, dass LC überhaupt nicht starten würde. Und wenn, sind wir gerne bereit, Hilfe zu leisten, damit es funktioniert.

Mit Inkompatibilität meine ich übrigens keine Content-Inkompatibilitäten. Der Content soll spielbar bleiben. Im Gegenteil, ich habe mich momentan der Harkon-Crashes angenommen, die im Übrigen auch Enginebugs sind.

3 „Gefällt mir“