Zapytałem deweloperów, dlaczego porty PC w 2023 roku działają jak śmieci

respec dt wyróżniony obraz 2
Ta historia jest częścią serii ReSpec Jacoba Roacha, obejmującej świat gier komputerowych i sprzętu.

Patrząc na Stan wydań PC w 2023 łatwo zacząć wytykać palcami. Gra nie jest zoptymalizowana (cokolwiek to znaczy), albo wydawca wypuścił ją zbyt szybko, albo karty graficzne, które sprzedaje nam Nvidia, pochodzą ze zbyt małą ilością VRAM. Ale te oskarżenia, w większości przypadków, są na wpół upieczone i aroganckie i chociaż wskazują na rzeczywistość, nie opowiadają całej historii.

Zawartość

  • Jaki jest problem?
  • Co możesz zrobić dobrze
  • Droga naprzód dla portów PC

Polecane filmy

Chciałem wiedzieć, co tak naprawdę się dzieje, więc usiadłem z kilkoma programistami, aby zrozumieć stan gier na PC i dlaczego tak wiele wydań pojawiło się z tak dużymi problemami. Co ważniejsze, chciałem wiedzieć, co programiści i wydawcy mogą zrobić, aby rozwiązać te problemy, i chociaż ścieżka naprzód nie jest jasna, staje się oczywiste, że programiści wiedzą, że istnieje problem.

Jaki jest problem?

Mały komputer do gier obok PS5.

Po pierwsze, musimy zidentyfikować podstawowy problem z komputerami PC, zwłaszcza gdy gry są dostarczane w stanie nadającym się do gry (jeśli nie idealnym) na konsolach, a na PC są strasznie zepsute. Na wysokim poziomie problem z komputerem PC jako platformą jest dokładnie tym, co sprawia, że ​​jest on tak kuszący: elastyczność.

Powiązany

  • Dzięki wyłącznym partnerstwom na PC wszyscy tracą
  • Konsole wciąż mają jedną wielką zaletę, która szkodzi grom komputerowym
  • Jak wirusowa gra z kamerą do ciała oszukała internet, myśląc, że to prawdziwy materiał filmowy

Marc Whitten, starszy wiceprezes i dyrektor generalny Unity Create, mówi, że „sama różnorodność i zmienność konfiguracji komputerów PC, na których będą rozgrywane gry… ujawnić nieoczekiwane problemy”. Whitten wskazuje również na „różne systemy operacyjne i nowe aktualizacje sterowników, ciepło i opóźnienia oraz dostosowanie użytkownika” jako czynniki, które mogą mieć wpływ na problem.

Jestem pewien, że to jest odpowiedź, którą większość ludzi uważa za wyjaśnienie.

Ale według Whittena problemem nie jest sam brak testów. Twierdzi, że gry są „ogólnie szeroko testowane w trakcie tworzenia”. Problem sprowadza się do skala różnych konfiguracji, które programiści muszą przetestować, a także zmienne, których nie mogą uwzględnić Do.

W ramach eksperymentu myślowego, powiedzmy, że programista przypiął 100 różnych konfiguracji komputerów do przetestowania, zmieniając procesor, kartę graficzną, Barani dysk twardy między nimi. Dla przypomnienia, jest to liczba, którą po prostu wyciągam, a nie coś, co programista faktycznie określił jako realistyczny cel. Teraz weź wszystkie te konfiguracje i pomnóż je przez dziesiątki dodatkowych czynników: Z jakiego systemu operacyjnego korzystasz? Jaka wersja tego systemu operacyjnego? A wersja sterownika? Jakie ustawienia systemu BIOS są włączone? Czy masz jakieś oprogramowanie działające w tle, takie jak Razer Synapse lub Corsair iCue?

RTX 4080 na działającym stanowisku testowym.
Jacob Roach / Trendy cyfrowe

Zakres możliwych konfiguracji wykracza daleko poza to, jakie procesory i karty graficzne masz w swoim systemie czynniki te można łatwo zwielokrotnić w dziesiątki tysięcy scenariuszy, których programiści po prostu nie są w stanie uwzględnić Do. W idealnym świecie programiści mogą rozwiązać największe problemy w najpopularniejszych konfiguracjach komputerów PC za pomocą najnowszych aktualizacji sterowników i systemu operacyjnego, pozostawiając tylko małe, specyficzne problemy do rozwiązania po uruchomieniu.

Whitten nie jest odosobniony w tym odczuciu. John Johanas, dyrektor gry ds Pośpiech Hi-FiZło wewnątrz 2, mówi, że „myślenie, że można stworzyć produkt, który będzie działał bezbłędnie na czym, jest dość nierealistyczne wydaje się nieograniczoną konfiguracją procesorów, procesorów graficznych, pamięci i, co bardziej prawdopodobne, tego, co działa w tło."

Hideyuki Miyashita, programista systemów na Pośpiech Hi-Fi, zgodził się, ale konkretnie wskazał na koszt optymalizacji gry dla każdej możliwej konfiguracji: „In pod względem wydajności komputera, dzięki czemu każda funkcja graficzna byłaby skalowalna dla różnych konfiguracji ideał; jednak koszty rozwoju nakładają górny pułap na realistyczną obsługę skalowalności”.

To nie jest nowa historia. Duża liczba konfiguracji komputerów PC jest częstym winowajcą wszystkiego, od tego, jak trudno jest zoptymalizować gry na PC, po przyczyny, dla których nie widzieliśmy Szybkie wznowienie Xbox pojawia się w systemie Windows. Pytanie brzmi, co programiści mogą zrobić pomimo ograniczonego czasu i pieniędzy, którymi dysponują. Ponieważ komputery PC nie stają się prostsze, a gry wciąż pojawiają się na platformie zepsute.

Co możesz zrobić dobrze

Cal Kestis dzierży swój niebieski miecz świetlny i niesie BD-1 w Star Wars Jedi: Survivor.

W tym roku mamy wiele przykładów gier, które źle obsługują PC. Jedna pierwsza przykład jest Gwiezdne Wojny Jedi: Survivor, który obecnie ma status recenzji „Mieszany”. na Steam, mimo że jest jedną z najbardziej uznanych gier roku. Najlepsza recenzja brzmi: „Pojedyncza awaria uszkodziła mój 140-godzinny plik zapisu 99,8% NG +”. Tak.

Skontaktowałem się z zespołem programistów, aby dowiedzieć się, co poszło nie tak, i chociaż początkowo byli otwarci, EA wkroczyło i przestało odpowiadać na moje e-maile. Dlatego zamiast przyglądać się, jakie gry robią źle na PC, musimy przyjrzeć się temu, co programiści robią dobrze.

Pośpiech Hi-Fi jest pierwszorzędnym studium przypadku. Jest to nowa gra studia AAA, wykorzystująca niesławny silnik Unreal Engine 4. Można by pomyśleć, że to porównanie jabłka do pomarańczy Pośpiech Hi-Fi i taka gra Gwiezdne Wojny Jedi: Ocalały, ale mają ze sobą więcej wspólnego, niż można by przypuszczać. Jak zauważa Johanas, „… fakt, że gra ma kreskówkową estetykę, daje niektórym użytkownikom wrażenie, że gra nie powinna sprawiać problemu na niczyim komputerze. Realistycznie rzecz biorąc, gra robi wiele rzeczy, aby osiągnąć wygląd, o który nam chodziło i stale poruszający się świat, który jest bardzo wymagający… Wiedziałem, że wchodząc i upewniłem się, że spróbujemy w nie trafić oczekiwania”.

Chai tnie robota w Hi-Fi Rush.
Bethesda

Wyznaczenie tego celu od samego początku wydawało się ważne Pośpiech Hi-Fistabilność. Twórcy zauważają, że od początku celem projektowym było utrzymanie co najmniej 60 klatek na sekundę (fps), ponieważ jest to zarówno gra rytmiczna, jak i gra akcji, w której niezgodność z tym znakiem spowodowałaby „czkawkę [która] mogłaby spowodować desynchronizację z muzyką i postrzegane złe wrażenia z gry”, zgodnie z Johanas.

Jak udało się to zespołowi Tango Gameworks? Zasadniczo sprowadza się to do trzech głównych punktów: uważnego monitorowania pamięci VRAM, operacji asynchronicznych i buforowania PSO.

Według Kosuke Tanaki, głównego programisty grafiki w Pośpiech Hi-Fi, zespół monitorował wykorzystanie VRAM na każdym etapie rozwoju. Obejmuje to oczywiście monitorowanie każdego poziomu, ale także wykorzystanie pamięci VRAM każdej sekcji graficznej, proszenie artystów o zmniejszenie zużycia tekstur lub pamięci siatki, aby zmieścić się w budżecie gry. Nie jest to również rzadkością w tworzeniu gier.

Co działa w Pośpiech Hi-Fijego zaletą jest silny kierunek artystyczny. Jak podkreśla Tanaka: „Nasz styl graficzny trochę nam pomógł, ponieważ nie wymagamy tradycyjnych tekstur PBR, takich jak normalne mapy, chropowatość mapy lub mapy metaliczne”. To świadectwo pracy z kreatywnymi ograniczeniami i tego, jak mogą one wpłynąć na stabilność finału produkt. Johanas mówi, że nie była to kwestia mniejszego zakresu — chodziło o to, że „nie trzeba iść na duży bez powodu”.

Zapytałem zespół, czego się nauczył Pośpiech Hi-Fi które można zastosować w większych, szerszych projektach, ale to nie jest dokładnie sposób, w jaki Tango pobiera lekcje z gry. W rzeczywistości zespół programistów powiedział mi, że dowiedział się znacznie więcej o optymalizacji z Ghostwire: Tokio, który pasuje bardziej do tradycyjnej formy AAA i wprowadził te pomysły Pośpiech Hi-Fi, nie na odwrót.

Akito atakuje wrogów magią w Ghostwire: Tokyo.
Ghostwire: Tokyo to wczesna prezentacja TSR Unreal Engine, która jest bardzo podobna do FSR 2.0.

„Dowiedzieliśmy się dużo naszej wiedzy o tym, jak radzić sobie z jąkaniem w grze Pośpiech Hi-Fi z naszego doświadczenia w optymalizacji Ghostwire: Tokio– powiedział mi Miyashita. Duża część tego była  Buforowanie obiektu stanu potoku (PSO).. Jest to funkcja dostępna w Unreal Engine 4, która pomaga zredukować zacinanie się poprzez prekompilację shaderów przed uruchomieniem gry.

Główny problem polega na tym, że Unreal Engine 4 nie robi tego automatycznie, co prowadzi do sytuacji, w których shadery muszą się kompilować podczas gry, co powoduje zacinanie się. Miyashita mówi, że „spowodowało to, że niektóre procesy końcowe i efekty wizualne powodowały zacinanie się”. Programista mówi również, że buforowanie PSO jest opcjonalne, więc programista musi się na nim skupić.

Buforowanie nie rozwiązuje jednak każdego problemu i właśnie tam pojawiają się operacje asynchroniczne. The Pośpiech Hi-Fi zespół zastosował kompilację asynchroniczną — w której shadery są kompilowane oddzielnie od wątku gry — ale był to również duży nacisk, biorąc pod uwagę, że gra działała na silniku Unreal Engine 4.

Jak widzieliśmy w przypadku innych gier Unreal Engine 4, takich jak Gwiezdne Wojny Jedi: Survivor Redfall, silnik nie radzi sobie zbyt dobrze ze skalowaniem do wielu wątków dostępnych na nowoczesnych procesorach. jako Miyashita wyjaśnia: „To, jak trudna może być obsługa wielowątkowości, w dużej mierze zależy od używanego silnika architektura. Niestety, UE4 pod tym względem trochę zawodzi”.

W szczególności Unreal Engine 4, według twórcy, umieszcza tworzenie aktorów (obiekty/postacie) i widżetów (UI i nakładki) w tym samym wątku procesora co gra. Oznacza to, że za każdym razem, gdy gra chce na przykład załadować nową postać, ma pierwszeństwo w wątku. Miyashita mówi, że „może to skutkować skomplikowanym tworzeniem aktorów i widżetów, blokującym wątek gry przez długi czas”. To jąkanie.

Rozwiązaniem są operacje asynchroniczne. Miyashita mówi, że zespół używa narzędzi analitycznych, aby określić, co robi procesor podczas przenoszenia obiektów i że starają się przenieść te zadania do różnych wątków, aby gra nie spowalniała w dół. To określone kierowanie może również pomóc w ładowaniu zasobów. Przeniesienie tych operacji do struktury równoległej może uniknąć pułapek związanych z zacinaniem się transmisji strumieniowej, które występują w grach takich jak Martwa przestrzeń.

Droga naprzód dla portów PC

Layla osłania się widmowym parasolem w Redfall.

Gry, które wychodzą dzisiaj w katastrofalnych stanach, rozpoczęły swój rozwój wiele lat temu, więc chociaż mam nadzieję że wydania na PC będą się poprawiać w miarę upływu roku, może minąć kilka lat, zanim zobaczymy te podstawowe problemy zaadresowany.

Whitten mówi, że „deweloperzy są tak samo zaniepokojeni wydajnością jak gracze” i to zdanie słyszałem kilka razy. Istnieją sposoby na optymalizację wydań na PC, od wstępnego buforowania shaderów, przez operacje asynchroniczne, po sprawdzanie poprawności na szerokiej gamie sprzętu. Ale rzeczywistość jest taka, że ​​​​programiści nie mogą wziąć pod uwagę wszystkiego, ze względu na czas lub pieniądze, a zwykle jedno i drugie.

Droga do przodu jest tu prosta. Po pierwsze, poinformuj wydawców tych gier, że wolisz opóźnienie niż zepsutą grę. Krzyczenie na programistów niewiele pomoże — oni już znają problem i prawdopodobnie tak samo jak ty chcieliby, żeby został rozwiązany. Po drugie, zachowaj ostrożność, kupując nową grę na PC w dniu premiery. Ciężko jest być cierpliwym, gdy nie możesz się doczekać czegoś (wierz mi, wiem), ale czekasz z zakupem gry, aż Problemy zostały rozwiązane, stanowi wyraźny sygnał dla wydawców, aby poświęcili więcej czasu i zasobów na dopracowanie gier na PC.

Łatwo zapomnieć, że to wciąż niezbadany teren. Teraz, bardziej niż kiedykolwiek, gry pojawiają się na PC tego samego dnia, w którym pojawiają się na konsolach, w przeciwieństwie do kilku lat temu, kiedy porty na PC pojawiały się miesiące (a nawet lata) później. Dwie generacje konsol temu większość gier była wysyłana tego samego dnia na jedną platformę; w poprzedniej generacji były to dwa. Teraz oczekuje się, że programiści będą dostarczać gry na co najmniej trzy platformy tego samego dnia, a czasem nawet na pięć, jeśli mają wersję ostatniej generacji.

Biorąc pod uwagę ten kontekst, nietrudno zrozumieć, dlaczego występują problemy na PC, ale miejmy nadzieję, że bardziej dopracowane wydania są w drodze.

Ten artykuł jest częścią ReSpec – trwająca co dwa tygodnie kolumna zawierająca dyskusje, porady i szczegółowe raporty na temat technologii stojących za grami komputerowymi.

Zalecenia redaktorów

  • Próbowałem ponownie przeżyć zapomniane dziedzictwo Halo jako franczyzy na komputery Mac — i to była katastrofa
  • Najgorsze porty PC wszechczasów — i dlaczego były takie złe
  • Star Wars Jedi: Survivor jest bombardowany recenzjami na Steamie jako „totalne gówno” na PC
  • Jak Unreal Engine 5 rozwiązuje największy problem w grach komputerowych
  • Sztuczna inteligencja nadchodzi dla twoich gier komputerowych, ale powinieneś być podekscytowany, a nie zmartwiony