Ekspert Unreal Engine uruchamia inicjatywę „Great Hitch Hunt”, aby wyeliminować zacinanie się w grach UE i udziela wskazówek deweloperom

Ekspert Unreal Engine uruchamia inicjatywę „Great Hitch Hunt”, aby wyeliminować zacinanie się w grach UE i udziela wskazówek deweloperom

Konfrontacja z problemami zacinania się w grach na silniku Unreal Engine: spostrzeżenia z Unreal Fest 2025

Podczas targów Unreal Fest 2025 w Orlando na Florydzie, starszy inżynier oprogramowania Ari Arnbjörnsson poruszył kluczowy problem graczy PC: zacinanie się gier stworzonych w Unreal Engine. W obliczu napływu nowych tytułów z problemami z wydajnością, społeczność graczy zaczęła wątpić w reakcję Epic Games na ten uporczywy problem.

Sedno sprawy: „Wielkie polowanie na autostop”

W swojej intrygującej prezentacji zatytułowanej „The Great Hitch Hunt” Arnbjörnsson włożył kostium łowcy czarownic i wezwał deweloperów do aktywnego wyeliminowania przyczyn zacinania się gry. Przedstawił siedem głównych czynników przyczyniających się do tych zakłóceń w rozgrywce i przedstawił praktyczne, najlepsze praktyki dla deweloperów, którzy chcą poprawić wydajność.

Identyfikacja sprawców jąkania

1. Problemy z przesyłaniem strumieniowym poziomów

Pierwszym poważnym winowajcą jest Level Streaming, który obejmuje różne zacięcia związane z dynamicznym ładowaniem i rozładowywaniem środowisk gry. Arnbjörnsson zauważył, że niewłaściwe użycie statycznych aktorów siatki – takich jak złożone obiekty, takie jak stoły i sztućce – może znacząco obniżyć wydajność gry, szczególnie w rozbudowanych światach AAA. Aby złagodzić te problemy, opowiedział się za stosowaniem instancjonowanych siatek statycznych (ISM) lub hierarchicznych instancjonowanych siatek statycznych (HISM), a także za wykorzystaniem funkcji upakowanych aktorów poziomów do skondensowania wielu statycznych siatek w mniejszą liczbę aktorów o mniejszym zapotrzebowaniu na zasoby. Wspomniał również o nadchodzących ulepszeniach w technologii Cell Transformers w silniku Unreal Engine 5.5, która ma automatycznie konwertować statycznych aktorów siatki na instancjonowane siatki w czasie wykonywania.

2. Optymalizacja fizyki

Innym źródłem problemów jest przetwarzanie związane z fizyką. Deweloperzy często nie doceniają potrzeby optymalizacji, zwłaszcza po wprowadzeniu technologii Nanite w silniku Unreal Engine 5, co prowadzi do założenia, że złożone siatki będą działać płynnie. Zamiast tego Arnbjörnsson zaleca stosowanie prostszych kształtów kolizyjnych – zaczynając od sfer, następnie kapsuł, następnie prostopadłościanów, a na końcu wielokątów wypukłych. Podkreślił również znaczenie wyłączenia interakcji fizycznych dla odległych, nieinteraktywnych obiektów. Eksperymentalna funkcja Asynchronicznej Inicjalizacji Fizyki firmy Epic ma na celu zmniejszenie obciążenia wątku gry przez fizykę, ale deweloperzy powinni podchodzić do niej ostrożnie.

3. Opóźnienia w pojawianiu się aktorów

Opóźnienia w generowaniu aktorów stanowią kolejne poważne wyzwanie. Aktorzy, którzy są rozbudowani i posiadają wiele komponentów, takich jak modele postaci, mogą powodować zauważalne spadki liczby klatek na sekundę podczas inicjalizacji. Aby temu zaradzić, Arnbjörnsson zasugerował ograniczenie liczby aktorów generowanych w każdej klatce, opóźnienie aktywacji komponentów aktorów oraz wdrożenie strategii łączenia aktorów w pule, aby ponownie wykorzystać istniejące obiekty, zamiast wielokrotnego ich niszczenia i tworzenia od nowa. Chociaż rozważana jest implementacja łączenia aktorów w pule jako domyślnej funkcji w silniku Unreal Engine, obecnie zachęca się deweloperów do tworzenia pul dostosowanych do ich konkretnych typów aktorów.

4. Kompilacja obiektu stanu potoku (PSO)

Jedną z najczęstszych przyczyn zacinania się jest kompilacja Pipeline State Object (PSO).W przeciwieństwie do konsol, które charakteryzują się jednolitą konfiguracją sprzętową, komputery PC napotykają problemy z kompilacją shaderów podczas rozgrywki, co prowadzi do zacinania się, gdy shadery muszą być kompilowane „w locie”.Chociaż funkcja wstępnego buforowania PSO została wprowadzona w Unreal Engine 5.3, aby złagodzić ten problem, programiści nadal muszą opracować własne strategie kompilacji PSO i wykorzystać narzędzia takie jak wtyczka PSO Cache Buster, aby jeszcze bardziej zoptymalizować wydajność.

5. Kolce do wywozu śmieci

Odśmiecanie może również prowadzić do spadków wydajności, gdy kumuluje się nadmierna liczba nieużywanych instancji obiektów UObject, co wydłuża proces odśmiecania. Programiści powinni aktywnie zarządzać liczbą obiektów UObject i inteligentnie planować odśmiecanie, aby zminimalizować zakłócenia. Epic bada obecnie eksperymentalną funkcję analizy przyrostowej dostępności (Incremental Reachability Analysis), mającą na celu rozłożenie zadań odśmiecania na wiele ramek w celu złagodzenia tych problemów.

6. Zaczepy załadowcze synchroniczne

Zacięcia podczas ładowania synchronicznego występują, gdy wątek gry zostaje zatrzymany przez blokowanie ładowania zasobów, co prowadzi do frustrująco długich przerw. Aby temu zaradzić, programiści muszą ściśle stosować techniki ładowania asynchronicznego i korzystać z walidatorów zasobów, takich jak CommonValidators Arnbjörnssona, do śledzenia problematycznych zachowań ładowania. Wersje Unreal Engine 5.4 i 5.5 mają na celu poprawę sytuacji poprzez wprowadzenie funkcji umożliwiających częściowe opróżnianie kolejek asynchronicznych.

7. Problemy z projektem i treścią

Wreszcie, wydajność może być ograniczana przez zbyt skomplikowane projekty i skrypty treści, które mogą obejmować nadmierne limity czasu, częste aktualizacje lub rozdęte sekwencje. Aby pomóc deweloperom, Epic udoskonala narzędzie Unreal Insights, ułatwiając wizualizację i usuwanie wąskich gardeł wydajnościowych w projektach.

Wnioski: Podejmowanie wyzwań optymalizacji

Podsumowując swoją prezentację, Arnbjörnsson podkreślił, że choć postęp technologiczny nieustannie zmienia oblicze gier, twórcy gier muszą być świadomi ich ograniczeń. Skuteczne strategie optymalizacji i kreatywne rozwiązywanie problemów pozostają kluczowe dla zapewnienia jak najbardziej płynnych wrażeń z gry. Jego sesja miała na celu nie tylko poinformowanie, ale także zainspirowanie twórców gier do podjęcia działań w celu rozwiązania problemów z zacinaniem się gier w ich projektach.

Aby uzyskać więcej szczegółów, obejrzyj całą prezentację

.

Źródło i obrazy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *