Host-Migration hält den Multiplayer-Zustand von s&box am Leben, wenn der Host das Spiel verlässt
Update 26.09.15 fügt Host-Migration zu s&box hinzu. Wenn ein Host das Spiel verlässt, wird sein Snapshot-Zustand auf dem neuen Host wiederhergestellt, einschließlich Host-exklusiver Objekte, Snapshot-Zustand und replizierter ConVars. Zustand, der einen späten Beitritt überlebt, sollte auch die Host-Migration überleben. Laufender Code wird nicht übernommen, daher muss das Verhalten im laufenden Betrieb auf dem neuen Host fortgesetzt werden. Analyzer prüfen, ob Zustand und Verhalten migrationssicher sind. Details: Dokumentation zur Host-Migration.
Painter und GPU-Text
Painter ersetzt HudPainter und das Panel-Rendering-System durch eine gemeinsame Zeichen-API für Panels, HUDs, Weltpanels, Texturen und Befehlslisten. Es rendert antialiaste SDF-Formen, Pfade, Füllungen, Striche und Clipping, einschließlich Bögen, Pfeile, Bézierlinien, Kapseln, Kreise, Polygone und Sterne. Striche unterstützen Platzierung innen, mittig und außen sowie durchgezogene, gestrichelte und gepunktete Stile; Füllungen können Farbe, Bild oder radiale, lineare und konische Verläufe sein. Linien-Gehrungen unterstützen abgeschrägte und runde Ecken. Batching hält die Performance hoch; die Demo rendert in einem einzigen Draw Call. IPanelDraw ist überflüssig; OnDraw(Painter painter) überschreiben. HudPainter ist zugunsten von Painter.Begin, CameraComponent.BeginHud und BeginOverlay veraltet.
GPU-Textrendering verwendet den Lengyel-Algorithmus und behält dabei die aktuelle API bei. Kurven werden an die GPU übergeben und im Shader gezeichnet, daher ist keine Aktion erforderlich. Es unterstützt CJK, Emojis und alles, was das vorherige System unterstützte, bleibt aus der Nähe scharf und ist deutlich schneller. UI, HUD, TextRenderer und Partikeltext rendern aus Glyphenumrissen in einem einzigen Draw Call.
Menü und Editor
Hover-Karten zeigen eine Spielvorschau mit den Aktionen Spielen, Bewerten, Favorisieren, Rezensieren und Ausblenden. Spiel-Modals und Toasts wurden überarbeitet, damit Rezensionen, Favoriten und das Ausblenden von Spielen sichtbarer sind. Modals platzieren Bewertung, Favorit, Rezension und Ausblenden neben dem Spielen-Button, mit einer Aufforderung zum Verfassen einer Rezension; das Rechtsklickmenü fügt Gefällt mir, Gefällt mir nicht, Favorit und Ausblenden hinzu. Jam-Nominierungen funktionieren über Hover-Karten, das Spiel-Modal und den Toast am Spielende, mit Prüfungen der Mindestspielzeit, und Favoriten-, Abstimmungs- und Nominierungsschaltflächen aktualisieren sich sofort und gleichen sich mit dem Server ab.
Editor-Qualitätsvoreinstellungen lassen sich über die Viewport-Steuerelemente umschalten. Editor- und MCP-Multiplayer-Testtools können Sitzungen hosten, lokale Instanzen starten und den Host migrieren. Ausgewählte Meshes können umgedreht werden; wenn beim Ziehen Shift gehalten wird, wird ein an der Oberfläche ausgerichteter Block erstellt. Eine Pivot-Auswahl legt den Pivot fest, ohne das ausgewählte Mesh zu verändern. Der Movie-Maker-Export verwendet standardmäßig AV1. Shader-Feature-Werte können per Name als Integer gelesen werden, ohne zusätzliche Deklarationen. Speichereinstellungen zeigen Nutzung und Typaufschlüsselungen, Scanfortschritt, Bereinigungsempfehlungen und Löschbestätigung.
Performance und Plattform
Das Klonen von GameObjects ist in synthetischen Tests etwa 2,6-mal schneller bei rund 38 % weniger Allokationen. Reale Tests zeigen eine geringere Auswirkung, weil das Erzeugen von Modellen und Kollisionen der Hauptengpass ist; der Serialisierungsaufwand war bereits niedrig. Netzwerk-Snapshots sind auf dem Host günstiger: Der Szenenzustand wird weiterhin im Hauptthread erfasst, aber JSON-, Blob- und Paketkodierung laufen auf Workern für Join-, Szenenlade- und Migrations-Snapshots, wobei die Sendereihenfolge erhalten bleibt.
Mac- und Linux-Fixes decken Spielansichtseingabe, Editor-DPI-Skalierung, Öffnen von Ordnern im Finder, Szenen-Staging, Code-Editor-Erkennung und Veröffentlichungs-/Export-Steuerelemente ab. Geometrie-Shader-Unterstützung behebt Highlight-Abstürze auf dem Mac, dazu eine Korrektur der Lebensdauer prozeduraler Render-Callbacks. Native Linux-Builds verwenden Steam Linux Runtime 4.0 mit aktualisiertem libcurl und gebündeltem ICU, und der Fallback für Farb-Emojis verwendet Twemoji. Das Open-Source-Setup fügt Setup.bat und Setup.sh, Downloadfortschritt, Git-Hooks und plattformspezifische Artefakte hinzu.
Block Party und weitere Fixes
Block Party ist ein neues Spiel, das das 2D-Sprite-System verwendet, mit Bestenlisten und Replays, einem Leveleditor mit Workshop-Unterstützung, GIF-Exporten und mehr: sbox.game/facepunch/blockparty.
CSS overscroll-behavior ist implementiert, deaktiviert das Zurückfedern am Scrollrand und verhindert, dass das Scrollen auf das übergeordnete Panel übergreift, mit Steuerung pro Achse (MDN). Scroll-Bounce erzwingt jetzt eine harte Grenze.
Weitere Fixes betreffen Connect-Vertices-Validierung, Asset-Browser-Layouts, Publish-Hotload-Wiederherstellung, Doo-Edit-Undo, Mesh-Spiegelung, Hammer-Materialien und FBX-Importe. Netzwerk-Fixes betreffen Verbindungsserialisierung, rekursive gezielte Nachrichten, auf 32 Ebenen begrenzte BytePack-Verschachtelung und Loopback-Einschränkungen. Navigations- und Physik-Fixes verbessern Crowd-Steering, Agent-Transforms, Navmesh-Rebaking und StepHeight des Character Controllers. Rendering- und UI-Fixes betreffen Collider-Bereinigung, ein refraktives VRAM-Leck, Clutter-LOD, Razor-Outros, veralteten Drag-Zustand, Bitmap-Text, Alpha von Farb-Emojis und weibliche Skin-Texturen.