Kategorien
Allgemein

LegacyClonk 4.9.10.11 [346]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Objektskalierung

Vergleichsbild ist in Arbeit.

Hochauflösende Objektgrafiken in Clonk? Geht das?
Jetzt schon! Durch die neue DefCore-Eigenschaft Scale kann nun ein Skalierungsfaktor in Prozent bestimmt werden, in dem die Objektgrafiken vorliegen. Der Wert gibt an, bei welchem Spielskalierungsfaktor die Objektgrafik in Originalgröße dargestellt wird.

Soll heißen:

  • Scale=100 bedeutet, dass die Objektgrafik bei 100% Spielskalierung (in den Optionen einstellbar) in Originalgröße gerendert wird. Bei höheren Spielskalierungen muss sie entsprechend raufskaliert werden. Dies ist das momentane und das Standardverhalten aller Objekte.
  • Scale=200 skaliert die Objektgrafik bei 100% Spielskalierung auf die Hälfte. Bei 200% Spielskalierung wird sie jedoch in Originalgröße dargestellt, wodurch die Unschärfe des Skalierens entfällt.

Werte sind nicht auf ganze Zahlen (100%, 200%, 400%, …) beschränkt, allerdings können bei unschönen Werten Skalierungsartefakte auftreten.

Länge, Breite, ActMap-Angaben können wie gewohnt in den Maßen angegeben werden, die das Objekt im Spiel haben soll. Eine Ausnahme besteht in der SolidMask – da die Pixel exakt den Pixeln der Grafik entsprechen müssen, müssen **nur** die Offsets in Grafikkoordinaten angegeben werden.

Beispiel: Ich möchte der Stahlbrücke aus Codename: Modern Combat eine höher auflösende Grafik verpassen. Ein Auszug aus den Grafikparametern der DefCore.txt lautet wie folgend:

Neue Soundengine

Bisher wurde für Sounds auf Windows FMOD und auf anderen Plattformen SDL_mixer 1.2 verwendet. Dies brachte einige Probleme mit sich, etwa den MIDI-Bug mit FMOD, verschiedene SDL-Unschönheiten und, dass kein Windows-LC-Archiv komplett out-of-the-box läuft, weil zuerst fmod.dll aus dem CR-Archiv kopiert werden muss, da diese aus Lizenzgründen nicht mitgeliefert werden darf.
Ab 346 wird standardmäßig für alle Plattformen SDL2_mixer verwendet, wie bereits in 344 versucht wurde. Dies bringt eine kleine Klangänderung mit sich – wie stark, hängt von den Ohren der befragten Person und den verwendeten Sounds ab.

Im Gegensatz zum letzten Versuch gibt es allerdings für Windows-Nutzer die Möglichkeit, weiterhin FMOD zu verwenden, indem die fmod.dll aus Clonk Rage in den Clonk-Ordner eingefügt wird. Für alle bestehenden Installationen müsste dies also ohne zusätzlichen Aufwand bereits der Fall sein.
Wenn FMOD korrekt geladen wird, erscheint beim Ladebildschirm noch vor dem Hauptmenü die Nachricht Using dynamically loaded FMod for sound.

Sollte allerdings SDL2_mixer verwendet werden und es bei Szenarien mit sehr vielen Sounds zu Problemen kommt, weil die mit 32-Bit zur Verfügung stehenden 2 GB RAM nicht ausreichen, kann auf die (momentan experimentelle) 64 Bit-Version ausgewichen werden.

Achtung: Die fmod.dll von Clonk Rage funktioniert nur mit der 32-Bit-Version.
Für die 64-Bit-Version ist zwar dieselbe Funktionalität möglich, allerdings müsste dafür die 64 Bit-Version fmod64.dll vorhanden sein.

Verbesserung des authentischen Clonk-Planet-Erlebnisses

Die Landschaft von Szenarien, deren Versionsnummer kleiner als 4.6.5 ist, wird nun standardmäßig ohne 3D-Materialschattierung dargestellt, um dem Originalverhalten näherzukommen. EntwicklerInnen können die Materialschatterierung für ihre Szenarien über die Einstellung ShadeMaterials der [Landscape] – Sektion der Scenario.txt ändern. Ein Wert von true schaltet es ein, ein Wert von false aus.

Weiters wurden einige Bugs gefixt, die zu Scriptfehlern in alten Szenarien führten, etwa in der Clonk Planet – Forschungsstation.

Weitere neue Script- und Objektfeatures

  • Mittels der DefCore-Eigenschaft BaseAutoSell kann nun gesteuert werden, ob ein Objekt in der Basis automatisch verkauft wird oder nicht. Standardwert ist false, außer das Objekt hat die ID GOLD, damit Goldobjekte von Drittanbietern nicht kaputtgehen.
  • Mittels der DefCore-Eigenschaft HideHUDElements können nun bestimmte Elemente des Clonk-HUDs am linken Bildschirmrand in Crewmemberobjekten verborgen werden. Bitmaske. Mögliche Werte:
NameWertVersteckt
Portrait1Clonkportrait
Captain2Kapitänssymbol
Name4Clonkname
Rank8Rangname
RankImage16Rangsymbol
All31Alles davon
  • Neuer Scriptoperator ??. Ist der erste Operand nil, wird der zweite Operand zurückgegeben, ansonsten der erste.
  • Neuer Scriptoperator ??=. Setzt den ersten Operanden auf den zweiten, wenn der erste nil ist.

Weitere Features

  • Der Netzwerkstack versucht nun nicht mehr, sich mit Nulladressen zu verbinden, was technisch nicht möglich ist; dadurch erzeugte Nachrichten müllen das Log nun nicht mehr voll.
  • Auf UNIX-Systemen werden etwaige auftretende Signale nach der Ausgabe des Stacktraces wieder ausgelöst, wodurch der Crashhandler des Systems aufgerufen wird.
  • Die Lobby zeigt nun die Anzahl der Spieler in der Lobby sowie der maximal möglichen Spielerzahl in der Titelleiste der Spielerliste an.
  • Vorladen ist nun standardmäßig aktiviert und nicht mehr in der experimentellen Phase. Wir bedanken uns bei allen Spielerinnen und Spielern, die Feedback geliefert haben.
  • /sound fällt nun auf die Dateiendung .ogg zurück, wenn kein Sound mit passendem Namen und Endung .wav gefunden werden kann.
  • Alt + Enter öffnet im laufenden Spiel nun die Chateingabe für Nachrichten über dem Clonk.
  • Leere Chateingabzeilen werden beim Drücken der passenden Tastenkombinationen entsprechend ausgefüllt, ohne sie davor schließen zu müssen.
  • experimenteller macOS-Support wie schon in 344
  • experimentelle 64-Bit-Windows-Anwendung

Bugfixes

  • Bei Fehlern während des Spielstarts wird nun anstelle eines nicht existierenden Stringtable-Eintrages namens IDS_PRC_FAIL eine passende Fehlermeldung angezeigt.
  • Mit etwas Glück ist ein bei Netzwerkspielen und insbesonders in Lobbies auftretender Crash behoben. (Technischer Hintergrund: StdStrBuf::AppendFormatV mit seinen verschiedenen Implementierungen für Windows und Linux wurde durch eine neue Implementierung mittels variadic templates anstelle von va_list erstellt. Damit tritt auch der Bug, dass über den Stack hinausgelesen wird, da die Argumentliste bei mehrfachen vsnprintf – Aufrufen nicht kopiert wird, nicht mehr auf, danke an Sharkigator aka Foaly fürs Melden und den Pull Request.)
  • Die Performance von die Landschaft modifizierenden Funktionen wie SetLandscapePixel und DrawMaterialQuad wurde drastisch verbessert; SetLandscapePixel sollte nun etwa 10 – 20 Mal so schnell sein wie davor. (Technischer Hintergrund: Zur Landschaftsbearbeitung muss Clonk die Landschaft aus dem GPU-Speicher in den Hauptspeicher laden. Bisher wurde immer die ganze Landschaft geladen, egal, wie groß die Änderung war; mit 346 wird nur der benötigte Bereich geladen.)
  • Fälle, in denen Maps ihre Schlüssel referenziert haben, wurden entfernt.
  • Kann weder ein UDP-Socket erstellt noch der Referenzserver gestartet werden, crasht das Spiel nicht mehr. (Technischer Hintergrund: Schlug die Referenzservererstellung fehl, wurde fälschlicherweise die Fehlermeldung des UDP-Sockets abgefragt.)
  • Die Landschaft zählt nun keine Pixel von ungültigen Materialien mehr.
  • Verlässt man die Lobby direkt am Anfang vom Vorladen, crasht das Spiel nicht mehr durch das versuchte Laden einer ungültigen Ressource.
  • Der Bereit-Dialog kann nun nicht mehr mit Ja bestätigt werden, wenn alle Ressourcen noch nicht vollständig herunterladen wurden.
  • Hit(int xdir, int ydir) wird nur noch in Objektdefinitionen ab Clonk Rage mit Argumenten abgerufen, da der Callback davor diese Parameter nicht hatte, was etwa in der Clonk Planet – Forschungsstation zu Scriptfehlern geführt hat.
  • Local(0) in Szenarien aus Clonk Planet – Zeiten wird nun wieder korrekt geladen. (Technische Hintergrund: Der Wert wurde als Integer geladen, anstelle automatisch bestimmt zu werden.)
  • Das Spiel crasht unter Windows nicht mehr, wenn ein Fehler direkt beim Programmstart auftritt.
  • Der Referenzserver antwortet nun mit HTTP 405 Method Not Allowed, wenn eine nicht unterstützte HTTP-Requestmethode verwendet wird.
  • Die Kompilieroption USE_STAT funktioniert wieder.
  • Aufnahmen werden nun gleich abgespielt, egal, ob mit oder ohne Vorladen aufgenommen wurde.
  • Updateknopf aus der Netzwerkliste entfernt. Die Architektur des Updatesystems hat zu Crashes geführt, wenn der Updateserver zu langsam geantwortet hat. (Technischer Hintergrund: Bis eine Antwort erhalten wird, wird die Mainloop im Netzwerkdialog ausgeführt. Verlässt man die Netzwerkliste, bevor eine Antwort erhalten worden ist, wird diese gelöscht; bei Erhalt der Antwort wird die Ausführung somit in einem gelöschten Objekt fortgesetzt.)
  • Temporäre Standalone-Dateien des Netzwerks werden nun korrekt gelöscht.
  • Lokal verfügbare, entpackte Ressourcen können nun nicht mehr in der Lobby gespeichert werden.
  • Startet der Host ein Netzwerkspiel mit entpackten Objektdefinitionen, verwendet er trotzdem die dadurch gepackten Versionen, um Desyncs durch andere Ladereihenfolgen vorzubeugen.
  • Jump and Run – Controls bleiben nicht mehr in gedrücktem Zustand, wenn die Taste während eines offenen Menüs / Dialogs losgelassen wird.
  • Neustartspielerwiederherstellungsinformationen werden nicht mehr gelöscht, wenn der „Spiel beenden“ – Dialog aufgerufen wird, aber mit Nein zum Spiel zurückgekehrt wird.
Kategorien
Allgemein

LegacyClonk 4.9.10.10 [345]

Download: Windows, Linux x64, Linux x86, macOS

Dies ist ein reines Bugfixrelease zu 344.
Unerwarteterweise haben sich durch die neue Audioengine und CURL mehrere mehr oder weniger gravierende Bugs eingeschlichen. Deswegen wurden diese in diesem Update weggelassen, sodass nun auch das alte Soundverhalten wieder zu hören ist. Die anderen Features von 344 sind jedoch vorhanden, sodass der Changelog des letzten Updates teilweise trotzdem noch gültig ist.

Updaten per Ingame-Updatefunktion ist aufgrund eines CURL-Timeout teilweise nicht möglich – in diesem Fall bitte die oben verlinkten ZIPs verwenden!

Kategorien
Allgemein

LegacyClonk 4.9.10.10 [344]

Download: Windows, Linux x64, Linux x86, macOS

Bereit-Dialog

Gibt der Host in der Lobby /readycheck ein, öffnet sich bei den Clients ein Dialog, in dem sie bestätigen müssen, ob sie bereit sind oder nicht. Dabei hat dieser Dialog ein Zeitlimit von 15 Sekunden, nach dem der Client als nicht bereit zählt, um Bereitleichen zu vermeiden.

Der Befehl kann nur alle 10 Sekunden aufgerufen werden. Per manueller Konfigurationsbearbeitung kann dieser Cooldown, falls erwünscht, auf bis zu 5 Sekunden gesenkt werden – auch wenn die Clients permanente Dialoge nicht gutheißen werden.

HTTPS

Luchs‘ Pull Request für OpenClonk wurde auf LC portiert, sodass die HTTP-Requests der Engine nicht mehr mit dem kruden Eigenbau, welcher weder HTTP/1.1 noch HTTPS implementiert hat, versendet werden. Stattdessen wird nun libcurl verwendet, wodurch sich beide Probleme gelöst haben. Die Kommunikation mit dem Masterserver und der Liga verläuft nun verschlüsselt, wenn die URLs entsprechend angepasst sind, was die Engine für Clonkspot automatisch erledigt.

Neue Soundengine

Bisher wurde für Sounds auf Windows FMOD und auf anderen Plattformen SDL_mixer 1.2 verwendet. Dies brachte einige Probleme mit sich, etwa den MIDI-Bug mit FMOD, verschiedene SDL-Unschönheiten und, dass kein Windows-LC-Archiv komplett out-of-the-box läuft, weil zuerst fmod.dll aus dem CR-Archiv kopiert werden muss, da diese aus Lizenzgründen nicht mitgeliefert werden darf.
Ab 344 wird für alle Plattformen SDL2_mixer verwendet. Dies bringt eine kleine Klangänderung mit sich – wie stark, hängt von den Ohren der befragten Person ab. Beschwerden über den neuen Klang hatten wir bisher keine, Feedback jeder Art ist aber definitiv erwünscht.

Bekannter Bug: Der Sound der Gatling in Western.c4d hat die Dateiendung .wav, ist aber eine MP3. Ob dies aus lizenztechnischen oder anderweitigen Gründen geschehen ist, ist nicht bekannt, wegen dieser Sounddatei wird jedoch eine Warnung ausgegeben.

Weitere Features

  • Wiedereinführung des Mac-Supports mittels SDL2
  • Bratkartoffl in den Credits
  • Zwischenablage für SDL-basierte Engines
  • Bei der Eingabe von | wird nun ¦ eingegeben.
  • Eine Änderung des Netzwerkmodus im F4-Dialog wirkt sich nun auch auf die Konfiguration aus.
  • Einträge in der Auswahlkarte können nun durch Setzen von SingleClick=true im entsprechenden Abschnitt in der FolderMap.txt per einfachem Klick anstelle von Doppelklick gestartet werden.
  • Im Konsolenmodus kann durch Mausradklick das Material unter dem Mauscursor als zu zeichnendes Material gesetzt werden.
  • Der Titel der Beschreibung von Spielständen enthält nun kein Markup mehr.
  • Der Abbrechen-Knopf des Spielstartwartedialogs ist nun nicht mehr fokussiert, um versehentliche Betätigungen zu vermeiden.
  • Die verschiedenen Aufnahmeknöpfe setzen nun direkt permanent den entsprechenden Konfigurationswert.
  • Die Hostversion des Spielstartwartedialogs enthält nun eine Neustartschaltfläche.
  • Mittels dem Kommandozeilenargument /allocconsole kann unter Windows nun eine Konsole allokiert werden, an die Standardein- und ausgabe gebunden werden.
  • Aktualisierung der Infostrings in Windowsbinaries
  • Strg + Enter öffnet die Chatzeile nun mit vorangestelltem ".
  • Scriptfunktion DrawModLandscape aus der Engine entfernt und in System.c4g durch einen Stub ersetzt. Die Funktion war für das spezielle Materialshading in Lhûnrim verantwortlich, funktioniert aber mindestens seit Clonk Rage nicht mehr.
  • Clients ohne Spieler müssen nicht mehr bereit sein, um das Spiel automatisch zu starten.
  • Auswahlkarteneintragoverlays werden nun geblockt nach den Basisgrafiken geladen.
  • Grafiken können beim Vorladen aktualisiert werden, wenn Config.Lobby.PreloadGraphics auf true gesetzt wird.
  • Die Bereitcheckbox hat nun einen fixen 2-Sekunden-Cooldown.

Bugfixes

  • Crash beim Abspielen von Aufnahmen, in denen /sound verwendet worden ist, behoben
  • Die Beschreibung von Spielständen enthält wieder Definitionen anstelle von Müll.
  • Die Beschreibung von Spielständen hat nun kein extra Komma am Ende der Clientauflistung mehr.
  • Lädt man als Client ein Szenario mit einer Musik vor, hängt man bei Spielstart nicht mehr in einer Endlosschleife.
  • Die Engine crasht nicht mehr, wenn der Netzwerkdialog verlassen worden ist und der Updateserver in der Zeit nicht geantwortet hat.
  • Ein Desync aufgrund der Wiederherstellung während der Regelerstellung erzeugter globaler Effekte wurde behoben.