Kategorien
Allgemein

LegacyClonk 4.9.10.11 [347]

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

Dies ist ein reines Bugfixrelease zu 346.

  • Der Konsolenmodus crasht nicht mehr beim Beenden von Clonk, wenn mehr als ein Sichtfenster offen ist.
  • Zur Wahrung der Kompatibilität werden Definitionen ohne Versionsangabe nicht mehr als uralte Definitionen, sondern wie Definitionen mit der Versionsnummer 4.9.10.7, was Clonk Rage entspricht, behandelt. Allerdings wird eine entsprechende Warnung ausgegeben, da die Versionsnummer erforderlich ist und wir keine näheren Garantien zum Verhalten bei deren Fehlen abgeben!
  • Debugbuilds der Engine sind nun wieder kompilierbar, das Inkludieren eines Headers hat gefehlt.
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.