Migracja hosta zachowuje stan multigracza w s&box po wyjściu hosta
Aktualizacja 26.09.15 dodaje migrację hosta do s&box. Gdy host wychodzi, jego stan snapshotu jest odtwarzany na nowym hoście, w tym obiekty tylko dla hosta, stan snapshotu i replikowane ConVars. Stan, który przetrwa późne dołączenie, powinien przetrwać migrację hosta. Działający kod nie jest przenoszony, więc zachowanie w trakcie działania trzeba wznowić na nowym hoście. Analizatory sprawdzają, czy stan i zachowanie są bezpieczne pod kątem migracji. Szczegóły: dokumentacja migracji hosta.
Painter i tekst na GPU
Painter zastępuje HudPainter i system renderowania paneli wspólnym API rysowania dla paneli, HUD-ów, paneli świata, tekstur i list poleceń. Renderuje wygładzone kształty SDF, ścieżki, wypełnienia, obrysy i przycinanie, w tym łuki, strzałki, linie Beziera, kapsułki, okręgi, wielokąty i gwiazdy. Obrysy obsługują umiejscowienie wewnątrz, na środku i na zewnątrz oraz style ciągłe, kreskowane i kropkowane; wypełnienia mogą być kolorem, obrazem lub gradientami radialnymi, liniowymi i stożkowymi. Połączenia linii obsługują fazowanie i zaokrąglenie. Batchowanie utrzymuje wysoką wydajność; demo renderuje się w jednym wywołaniu rysowania. IPanelDraw jest zbędne; przesłoń OnDraw(Painter painter). HudPainter jest przestarzałe na rzecz Painter.Begin, CameraComponent.BeginHud i BeginOverlay.
Renderowanie tekstu na GPU używa algorytmu Lengyela, zachowując obecne API. Krzywe są przekazywane do GPU i rysowane w shaderze, więc nie trzeba nic robić. Obsługuje CJK, emoji i wszystko, co obsługiwał poprzedni system, pozostaje ostre z bliska i jest znacznie szybsze. UI, HUD, TextRenderer i tekst cząsteczkowy renderują się z konturów glifów w jednym wywołaniu rysowania.
Menu i edytor
Karty po najechaniu pokazują podgląd gry z akcjami grania, oceniania, dodawania do ulubionych, recenzowania i ukrywania. Modale gier i powiadomienia toast zostały przerobione tak, aby recenzje, ulubione i ukrywanie gier były lepiej widoczne. Modale umieszczają ocenę, ulubione, recenzję i ukrycie obok przycisku Graj, wraz z zachętą do napisania recenzji; menu po kliknięciu prawym przyciskiem dodaje polubienie, niepolubienie, dodanie do ulubionych i ukrycie. Nominacje do jamów działają z poziomu kart po najechaniu, modala gry i powiadomienia po zakończeniu gry, z kontrolą minimalnego czasu gry, a przyciski ulubionych, głosowania i nominacji aktualizują się natychmiast i są uzgadniane z serwerem.
Presety jakości edytora można przełączać z poziomu kontrolek viewportu. Narzędzia do testowania multigracza w edytorze i MCP mogą hostować sesje, tworzyć lokalne instancje i migrować hosta. Wybrane siatki można odbić; przytrzymanie Shift podczas przeciągania tworzy blok wyrównany do powierzchni. Selektor pivotu ustawia pivot bez zmieniania wybranej siatki. Eksport Movie Maker domyślnie używa AV1. Wartości cech shaderów można odczytywać po nazwie jako liczbę całkowitą bez dodatkowych deklaracji. Ustawienia pamięci pokazują użycie i podział na typy, postęp skanowania, zalecenia dotyczące czyszczenia i potwierdzenie usunięcia.
Wydajność i platforma
Klonowanie GameObject jest około 2,6 razy szybsze i generuje około 38% mniej alokacji w testach syntetycznych. Rzeczywiste testy pokazują mniejszy wpływ, ponieważ tworzenie modeli i kolizji jest głównym wąskim gardłem; narzut serializacji był już niski. Snapshoty sieciowe są tańsze na hoście: stan sceny nadal jest przechwytywany w głównym wątku, ale kodowanie JSON, blobów i pakietów działa w wątkach roboczych dla snapshotów dołączania, wczytywania sceny i migracji, zachowując kolejność wysyłania.
Poprawki dla Maca i Linuksa obejmują obsługę wejścia w widoku gry, skalowanie DPI edytora, otwieranie folderów w Finderze, przygotowywanie scen, wykrywanie edytora kodu oraz kontrolki publikowania/eksportu. Wsparcie shaderów geometrii naprawia awarie Highlight na Macu oraz problem z czasem życia proceduralnego callbacku renderowania. Natywne kompilacje dla Linuksa używają Steam Linux Runtime 4.0 ze zaktualizowanym libcurl i dołączonym ICU, a mechanizm zapasowy dla kolorowych emoji używa Twemoji. Konfiguracja open source dodaje Setup.bat i Setup.sh, postęp pobierania, hooki Git i artefakty specyficzne dla platform.
Block Party i inne poprawki
Block Party to nowa gra korzystająca z systemu sprite'ów 2D, z rankingami i powtórkami, edytorem poziomów ze wsparciem warsztatu, eksportem GIF-ów i nie tylko: sbox.game/facepunch/blockparty.
Zaimplementowano CSS overscroll-behavior, wyłączając odbijanie na krawędzi przewijania i zapobiegając kaskadowaniu przewijania do panelu nadrzędnego, z kontrolą dla poszczególnych osi (MDN). Odbijanie przewijania wymusza teraz twardą granicę.
Inne poprawki obejmują walidację Connect Vertices, układy Asset Browser, odzyskiwanie po hotloadzie przy publikowaniu, cofanie edycji Doo, mirrorowanie siatek, materiały Hammera i importy FBX. Poprawki sieciowe dotyczą serializacji połączeń, rekurencyjnych wiadomości kierowanych, zagnieżdżania BytePack ograniczonego do 32 poziomów i ograniczeń loopback. Poprawki nawigacji i fizyki ulepszają sterowanie tłumem, transformacje agentów, przebudowę navmesh i StepHeight Character Controllera. Poprawki renderowania i UI obejmują czyszczenie colliderów, wyciek VRAM związany z refrakcją, LOD Clutter, outra Razora, nieaktualny stan przeciągania, tekst bitmapowy, kanał alfa kolorowych emoji i tekstury żeńskiej skóry.