Featurewünsche für LegacyClonk

Wenn man mit der Maus spielt, und eine sehr große Anzahl an Objekten auswählen will, um sie zum Beispiel in ein Gebäude tragen zu lassen stößt man relativ schnell an ein Limit, nachdem man nicht mehr mehr Objekte auswählen kann (wenn ich mich recht erinnere liegt das Limit bei 25, oder zumindest in dieser Größenordnung). Das ist ebenfalls eine Beobachtung die ursprünglich @Jan gemacht hat.
Es kann auch passieren, dass man an die Begrenzung der Befehlswarteschlangenlänge des Clonks stößt und der Clonk nur noch regungslos stehen bleibt.

Mein Vorschlag wäre, beide Limits großzügig zu erhöhen, da spätestens durch das Zulassen des Auswählens von sehr vielen Objekten sehr schnell auch die Befehlswarteschlangenlänge das Limit erreicht, da jedes ausgewählte Objekt schon einen Platz in der Warteschlange belegt.

Das Erhöhen des Auswahllimits haben wir bereits getestet.
Die Warteschlangenlänge konnten wir allerdings noch nicht erhöhen, da es sonst zu Desyncs gegenüber unmodifizierten Engines kommen würde.

Erstmal großes Lob, so ein Projekt hätte ich mir zu den Hochzeiten von Clonk Rage erhofft, eine schrittweise Weiterentwicklung statt einen harten Schnitt zu etwas völlig anderem hätte die Community von damals sicher mit Freude angenommen.

Mein Featurewunsch: Eine Form von Community-Präsenz innerhalb der Engine.
Muss nichts großes sein, Beispiele wären

  • Auf der Startseite von Clonk Rage könnte ein kleines Fenster die 3 aktuellsten Foren-Threads anzeigen - draufklicken öffnet es im Browser
  • Die Startseite zeigt die letzten 5 aktuellsten CCAN-Uploads für Clonk Rage (und Open Clonk) - draufklicken öffnet es im Browser
  • Anzeige von kurzen Community-Nachrichten - dazu könnte man in ClonkSpot-Forum eine entsprechende Kategorie anlegen wo jeder Threads erstellen kann und Moderatoren sie kurz abwinken, oder man definiert einen Status an Foren-Nutzer welche Nachrichten schreiben dürfen o.ä.
  • Simple Buttons die das ClonkSpot-Forum, die CCAN-Downloadsektion und eine Übersichtsseite, was (Open) Clonk (Rage) allgemein ist, verlinkt

Der Zweck des Ganzen ist einfach die Community, Spieler und Entwickler, Aktivität deutlicher anzuzeigen bzw. Entwicklern eine Fläche zur Anzeige ihrer Projekte, Szenarien und Objekte zu geben.
Die Hoffnung dahinter ist, die Schockstarre in der Community etwas zu lockern sowie neuen Spielern, denen “CCAN”, der Unterschied zwischen Open Clonk und Clonk Rage und andere Dinge mal absolut garnichts sagt, so auch eine erste Anlaufstelle zu geben.

3 „Gefällt mir“

Die Idee klingt prinzipiell gut, alles zusammen bringt aber wohl doch ein bisschen mehr Aufwand als ich mir fürs erste gewünscht hätte.

Weil das relativ viele Interaktionen mit anderen Servern beinhaltet, wäre es aber auf jeden Fall besser, davor noch eine gute HTTP(S)-Library anstatt des HTTP 1.0-Selbstbaus einzubauen, was sowieso generell schon halb eingeplant ist.

Gerade für CCAN und Clonkspot wärs natürlich gut wenn die jeweiligen Betreiber da etwas bereitstellen könnten, wobei ich mir da hauptsächlich bei CCAN sorgen mache.

Könntest du eventuell noch skizzieren, wie du dir das Layout-mäßig vorstellst?
Aber bitte behalte im Hinterkopf, dass Layouting in der Engine eher mühsam ist (man muss die ganze Aufteilung quasi selber ausrechnen), also dass es eher simpler gehalten werden wird.

Danke dafür. Ich hätte es mir auch früher gewünscht, allerdings sind dafür zumindest Fulgen und ich einfach zu spät auf die Welt gekommen. :confused:

Abgesehen davon ist es sowieso „erst“ vor wenigen Jahre überhaupt möglich geworden, als matthes uns beim letzten Update mehr Freiheiten gegeben hat.

Ganz abgesehen davon habe ich fast meine komplette Freizeit der letzten 5-6 (Osterferien-)Tage in die „letzten 20%“ des Updates gesteckt und auch Fulgen war fleißig (Osterferien sei Dank). So viel Zeit aufzuwenden ist im normalen Alltag eher ziemlich schwierig. Nur damit klar wird, warum wir trotzdem noch so lange dafür gebraucht haben.

Was vielleicht die Entwicklung erleichtern würde wäre das Verwenden vorhandener grafischer Assets und Menüs, hier beispielsweise die Nutzung des Optonsmenü-Layouts um eine kleine Nachrichtenübersicht anzuzeigen.
Draufklicken öffnet die entsprechende Webseite im Standardbrowser - vielleicht kann man hier soweit gehen und den Textinhalt direkt in der Engine anzeigen, oder das direkte Herunterladen von CCAN-Inhalten anbieten, ähnlich dem Laden von Szenarien und Objekten von hostenden Spielern.

Auf jeden Fall würden wir auf bestehende GUI-Elemente setzen.
Das sieht soweit recht machbar aus, aber zumindest ich selber will mich vorerst auf andere Dinge konzentrieren.
Es hängt also vorerst von den anderen Entwicklern ab, ob und wie schnell sowas implementiert wird.

Könntest du eventuell diesen Post mit dem anderen zusammenfügen, und evtl. wichtige Ausschnitte unserer Unterhaltung einbetten?

Dann könnten wir unsere getrennten Posts hier löschen damit es übersichtlich bleibt (weil es ja leider keine Baumstruktur hier gibt :confused:).

Auch ein Lob von mir.

Ich hab mir noch ein paar Gedanken über Chat-Featurewünsche gemacht (ich mag den weißen Chat und die Timestamps)

  • Weißer Chat für Lobby
  • Scrollen in Lobby mit Bild-Hoch / -runter Taste (vielleicht mit ein paar Zeilen Kontext)

Eigentlich kann man aber auch starten ohne dass alle fertig geladen haben, es lädt dann ja nach.
Ein wichtiger Unterschied dabei ist aber, dass man nicht auf das Speichern-Symbol klicken kann und das Szenario so nicht dauerhaft gespeichert wird.
Deswegen, noch ein Featurewunsch:

  • Noch nicht vorhandene Szenarien und Objektpakete werden automatisch gespeichert, wenn schon vorhanden bekommt man die Überschreiben-Anfrage automatisch

Da Like-Abstimmung bei mehr als einem Feature pro Post nicht funktioniert (Wer nichts davon will: nicht abstimmen):

  • Weißer Chat in Lobby
  • Scrollen mit Bild - Tasten
  • Automatisches Speichern von Szenarien und Objekten
0 Teilnehmer

Ich bin dafür, es standardmäßig zu aktivieren.

  • Ich vermute, dass es mehr Szenarien gibt, in denen man das brauchen kann (z.B. alle Siedelszenarien), als es Szenarien gibt, in denen es die Spielmechanik kaputtmacht (da fällt mir gerade nur Turm der Verzweiflung ein). Also muss man weniger Szenarien ändern.
  • Ich denke nicht, dass es Cheating ist, wenn meine Clonks endlich mal das tun, was ich ihnen schon die ganze Zeit sagen will

Das stimmt, aber es ist doof dass die Clients nicht wissen was los ist und man keinen Chat hat.
Natürlich könnte man diese Nachteile auch beheben versuchen, aber vorerst so ein Icon zu haben wäre aufwandsmäßig viel attraktiver.

Ja, deshalb ist es bei meiner eigenen Engine auch immer aktiv, aber es widerspricht halt dem Ziel 100% dasselbe Spielerlebnis zu bieten und würde auch Vorteile in der Siedelliga bringen.

Da fände ich es besser, wenn man als Host irgendwie die Möglichkeit hat die Erweiterung einfach trotzdem zu aktivieren (zum Beispiel ein Button bei der Szenarioauswahl), solange es ohne Liga ist.

Mir würde noch einfallen dass man Savegames die kaputt sind automatisch fixen lassen könnte. Der Frame muss ja immer ein Vielfaches des Ticks sein. das könnte die Engine doch eigentlich selbst bearbeiten, oder?

Nebenbei wäre noch nett wenn man die KI Funktionen der Clonks überladen könnte, bzw. mit Callbacks unterbinden. Mich nervt es dass bei aktivierter Energieregel immer versucht wird einen Leitungsbausatz an die Werkstatt anzuschließen.
Bei einem Energiesender braucht man keine Leitungen.

1 „Gefällt mir“

Gute Idee. Noch besser wäre es natürlich, den Bug zu fixen, aber auf jeden Fall sollten Savegames ohne manuelles Bearbeiten spielbar sein.

Da bin ich mir nicht sicher, ob man das nicht bereits über die richtigen Überladungen im Script lösen kann.
Auf die Schnelle fällt mir ein, dass man eventuell was mit ControlCommandAcquire, oder vielleicht mit Initialize im entsprechenden Gebäude machen könnte.

Erstmal Hut ab! Nach all der Zeit freut es mich, dass die Entwicklung von Clonk immer noch voranschreitet, und was für tolle Features schon hinzugefügt wurden.

Ich weiß nicht, ob es in Zeiten moderner Hardware noch ins Gewicht fällt, aber die Gemeinschaftskonto-Regel hat mehr Frames gekostet als die meisten anderen Objekte im Originalpack.

Das ständige Beobachten, Synchronisieren und Überschreiben der Kontostände ist ziemlich hackig. Wenn die Engine selbst Gemeinschaftskonten unterstützen würde, würde einiges an Rechenaufwand und Bugrisiken wegfallen.

Außerdem hatte ich mal das Brennstoffsystem (Hochofen und Kraftwerk) erweitert.

  • Somit können neue Objekte mit einer einfachen Callback-Funktion als Brennstoff definiert werden;
  • der Brennstoff-Sammel-Befehl vom Clonk ist entsprechend verallgemeinert;
  • Restenergie geht nicht verloren (wenn z. B. ein ganzes Fass Öl für ein Stück Erz verbrannt wird);
  • die clunker-effizientesten Brennstoffe werden zuerst verbraucht;
  • und neue Gebäude können mit einer Include-Bibliothek Brennstoff benutzen (+ Kraftwerk und Hochofen haben weniger doppelten Code).

In einigen edge cases trat noch komisches Verhalten auf, aber bei Interesse möchte ich diese Bibliothek gerne beitragen.

Performance-Probleme sind mir zwar mit der Gemeinschaftskonto-Regel noch nicht aufgefallen, ein Bug allerdings schon.
Werden wir eventuell für ein späteres Update in Betracht ziehen.

Das Brennstoffsystem klingt sehr interessant und könnte in einem späteren Update bei einer Erweiterung von Objects.c4d (diese Erweiterung müssten aber Szenarien ebenfalls explizit aktivieren) inkludiert werden.

Ist, wie Der Tod bereits geschrieben hat, mit ControlCommandAcquire möglich (und mMn auch die sauberste Lösung) - mit ControlCommand* lässt sich die Engine-KI bereits ziemlich stark an die eigenen Wünsche anpassen.

Danke für die Hinweise :+1:

:heavy_check_mark: Featurewunsch von Funni #1:
Ich will meine Ladestatusanzeige zurück. Ich will wissen, wann ich bedenkenlos starten kann, wenn ich noobs oder fremdsprachige Nutzer in der Lobby habe

1 „Gefällt mir“

Featurewunsch von Funni #2: Abfrage “Paket speichern”
Nutzer sollen bei Paketen z.B. > 20 MB beim Eintreten in die Lobby gefragt werden, ob sie das Paket dauerhaft speichern möchten.

Featurewunsch von Funni #3: Text im Chat kopieren
Text sollte zumindest in der Lobby aus dem Chatfenster kopiert werden können

1 „Gefällt mir“

Featurewunsch von Funni #4: Wichtig!!! URLs öffnen
URLs sollten per Mausklick geöffnet (An den Browser übergeben) werden können, um Neulingen schnell und unkompliziert Hilfestellungen geben zu können. Gerne mit Linkwarnung.

1 „Gefällt mir“

Featurewunsch von Funni #5:
/alert mit sound (und Spambegrenzung), damit man auch was mitbekommt, wenn man gerade Youtube Vollbild schaut

So das war’s glaub ich erstmal :slight_smile:

Featurewunsch von Funni #6:
IPv6 Support (Backporting von Openclonk)

Da Luchs den Spamfilter so streng eingestellt hat ^^

Featurewunsch von Funni #7: Portcheck z.B. durch Masterserver
Realisiert so, dass bei der Anmeldung am Masterserver dieser die Ports des anmeldenden Hosts kurz testet und einen entsprechenden Report für den Client bereitstellt.
Konkret entweder:

  • HTTP Anfrage -> Rückgabewert ist eine URL mit einem randomteil, Masterserver checkt und stellt den Report z.B. im JSON-Format bereit -> Client ruft den Report nach einem festgelegten Timeout ab -> Report wird beim Masterserver nach X Sekunden gelöscht
  • PHP-Script läuft so lange, bis der Check durch ist (ergo HTTP-Request dauert an) und gibt die Daten dann im Abschluss z.B. im JSON-Format an den Client aus

Als Option wäre eine Opt-Out Lösung nicht schlecht

2 „Gefällt mir“