Forza Motorsport na Project Scorpio: za kulisami
Jak Turn 10 pomogło w pracach.
Na krótko przed wizytą Digital Foundry w siedzibie Microsoftu, starszy dyrektor marketingu dla działu Xbox - Albert Penello - zapytał, co muszę zobaczyć, co w mojej opinie jest kluczowe. Odparłem bez zastanowienia i wahania, że poza specyfikacją i kwestiami technicznymi chciałbym zobaczyć oprogramowanie włączone na konsoli. Obietnice mówiące o skalowaniu do 4K to jedno, ale demo w czasie rzeczywistym pomogłoby w potwierdzeniu wielu obietnic. Penello rozsiadł się pewnie, pokiwał głową, uśmiechnął i rozmowa przeszła na inny temat.
Mniej niż 24 godziny później rozmawiam z Chrisem Tectorem, architektem oprogramowania w Turn 10 Studios. Tak jak i podczas innych prezentacji tego dnia, w powietrzu wyczuć można atmosferę podekscytowania. Deweloper z radością opowiada o roli swojej firmy w kształtowaniu Project Scorpio i pokazuje Forzę włączoną na nowej konsoli.
Mowa jednak o demie „ForzaTech”, nie o Forza Motorsport 7, ponieważ prezentacje nowych gier nie są zazwyczaj częścią takich spotkań, koncentrujących się głównie na sprzęcie. Turn 10 i zespół Xbox mają jednak pewność, że ostateczna jakość będzie identyczna, albo nawet jeszcze lepsza od dema technologicznego.
- ForzaTech to dla nas miejsce na testy funkcji danej platformy, takich jak Direct3D 12 [na PC - dop. red.]. Program pomaga także w wewnętrznych sprawach, których nikt nie widzi, w tym przypadku w modelowaniu tego, co stało się ze Scorpio - mówi Tector. - Nasz wkład był ważny, ponieważ działał w dwóch kierunkach. Chcieliśmy się upewnić, że sprzęt jest zdolny zrealizować to, co chcemy, zgodnie z naszą wizją dla następnej Forzy, ale jednocześnie chcieliśmy też mieć pewność, że ogólne założenia są solidne, że model się sprawdza.
Jak już opisywaliśmy, Microsoft postawił na rozległe modyfikacje układów CPU i GPU, wprowadzone po części na bazie danych zgromadzonych podczas testów istniejących silników graficznych z Xbox One, analizowanych za pomocą programu o nazwie PIX (Performance Inspector for Xbox - Inspektor Wydajności dla Xboksa). Turn 10 mogło zrobić więcej: dostosować swój silnik zgodnie z potrzebami, generując więcej zestawów danych dla zespołu odpowiedzialnego za konsolę, zanim jeszcze zajęto się jej budową.
- Przygotowaliśmy tonę informacji za pomocą ForzaTech, renderując różne wymagające sceny w kilku rozdzielczościach: 720p, 1080p, 4K, jednocześnie inaczej obciążając silnik: anizotropowe filtrowanie, multi-sampling, daleki zasięgrysowania. Wszystko w celu znalezienia „wąskich gardeł” - tłumaczy Tector.
- Dzięki temu, a także dzięki renderowaniu na tych określonych poziomach, mogliśmy potwierdzić, że projekt rzeczywiście działa i sprawnie się skaluje. Mogliśmy określić na przykład, że zmiana sceny 720p na 1080p przy określonych opcjach przekłada się na taką a taką płynność działania. Wszytko to dało się także porównać z rzeczywistą grą na Xbox One. Dzięki temu nabraliśmy pewności siebie, że projektowany model sprawnie się skaluje.
To był jednak tylko jeden zestaw danych, ponieważ kolejne informacje napływały od innych zespołów deweloperskich. Skalowanie do 4K stawało się coraz bardziej spójne.
- Materiały i analiza PIX potwierdziły wszystkim zainteresowanym, że jest to możliwe nie tylko przy przechodzeniu z 1080p60 do 4K60, jak w przypadku Turn 10, ale także w innych tytułach, które nie dotarły do takich wartości - dodaje Tector. - Tytuły, które miały inne rozdzielczości, kompromisy czy ograniczenia sprzętowe niż my. To bardzo dobrze, że nasz model sprawdził się w tak szerokim spektrum różnych rodzajów renderowania, to pomogło.
Dzięki ścisłej współpracy z zespołem odpowiedzialnym za konsolę, Turn 10 mogło zapewnić bezcenne wskazówki na bardzo wczesnym etapie prac sprzętowych.
- Wydaje się, że to odpowiednia faza, zwłaszcza tak wcześnie. Możemy sprawdzić i ocenić wszystko przed innymi studiami, zanim one będą musiały przejść przez ten sam proces - ekscytuje się Tector. - Robimy to jako firma first-party i pomagamy udowodnić możliwości sprzętu, ponieważ tworzymy platformę nie tylko dla siebie, ale dla wszystkich deweloperów.
- Nie sposób przecenić, jak ważne dla naszej platformy jest posiadanie kogoś takiego, jak Turn 10, Chris i jego zespół - zapewnia Kevin Gammill, Group Program Manager dla platformy Xbox Core. - Zapewniają nie tylko modelowanie rezultatów, są szczerzy z deweloperskiego punktu widzenia, ale stawiają się także w roli konsumentów, by spełnić ich oczekiwania. To fantastyczna współpraca.
- Głos deweloperów w projekcie to było coś potężnego. W przeszłości pewnie już się tak zdarzało, ale to była spora ulga - dodaje Tector. - Mówi dużo o Xbox jako organizacji, jeśli nawet na tak wczesnej fazie projektowania, gdy całość istnieje tylko na papierze, pytają się nas, czy wszystko będzie w porządku z punktu widzenia twórców.
Gammill sugeruje, że w podobny proces zaangażowane były wszystkie wewnętrzne studia deweloperskie Microsoftu.
- [Turn 10] kieruje nas w jedną stronę, 343 kładzie nacisk gdzie indziej, The Coalition jeszcze inaczej - mówi. - Rare kieruje uwagę ku Beam [platforma transmisji na żywo] i innym sprawom w tym obszarze. To świetnie, ponieważ mamy bardzo mocne relacje wewnątrz całej firmy, co jest korzyścią dla platformy, a co za tym idzie, także dla konsumenta.
Teoretyczne modele i przewidywania nabrały kształtu na początku roku, wraz z prototypem Project Scorpio. W połowie stycznia Matt Lee z zespołu Xbox Direct3D pojawił się w Turn 10 z wczesną wersją komponentów, chcąc uruchomić na nich rzeczywiste oprogramowanie.
- Chcieli wczesnego, natywnego tytułu, zbudowanego z myślą o Scorpio - wspomina Tector. - Przeprowadzono mnóstwo testów kompatybilności z istniejącymi grami, ale chcieli projektu do oceny wydajności, włączonego natywnie i bez emulatorów czy czegoś takiego.
Jak można się domyślać, prototypowe Scorpio nie przypominało jeszcze czegoś, co można uznać za gotową do sprzedaży konsolę.
- Miał karton pełen części i zaczął je wyciągać na biurko. Jakieś luźne płyty główne, nic nie pasowało, zmodyfikowane złącza, brak chłodzenia. Obok stał po prostu wielki wiatrak z PC i dmuchał na górę - śmieje się Tector. - Była z tego niezła komedia, ponieważ z powodu wibracji wiatrak powoli się obracał i zaczynał dmuchać na pamięć, więc cały system po chwili się wyłączał. W końcu przyczepiliśmy go do blatu taśmą klejącą, jak w garażu! Ale to była frajda, fajna zabawa.
Uruchomienie ForzaTech na takim prototypie zajęło tylko dwa dni, a - jak zapewnia Chris Tector - większość czasu zajęło adaptowanie kodu XDK (działające na PC środowisko programistyczne), ponieważ ten pochodził jeszcze z czasów zaraz po debiucie Forzy Motorsport 6.
- Mieliśmy problem z alokowaniem pamięci, ale potem całość już działała. Szybko poszło, byliśmy zaszokowani - wspomina. - Mieliśmy taki specjalny, zamknięty pokój dla Matta, gdzie mógł siedzieć przez długi czas. Ale trzeciego dnia bawiliśmy się już opcjami, powtarzaliśmy testy obciążeniowe i zastanawialiśmy się czy włączyć MSAA czy może inne efekty.
W tym miejscu zatrzymuję Tectora, by potwierdzić, że ForzaTech działało na mało zgrabnej kupce części już pierwszego dnia.
- Od pierwszego dnia, tak. Byliśmy zaszokowani... Inne premiery konsol nie zawsze wypadały tak sprawnie, walczyło się do ostatniego miesiąca... Tym razem drugiego dnia zaczęliśmy się zastanawiać, co dalej robić.
Zostaję poproszony do stacji roboczej z dwoma ekranami. Po lewej działa PIX z profilem wydajności, a po prawej demo ForzaTech, na pięknym, 55-calowym telewizorze LG OLED B6.
- To my. ForzaTech w 60 klatkach na sekundę, w 4K - mówi dumnie Tecton. - Nadal na ustawieniach, które zastosowaliśmy w Forza 6. To Xbox, więc korzystamy z EQAA, więc to jakieś 4:2 EQAA. To faktyczne wykorzystanie, pokazujące 60 procent obciążenia. Co ważne, to ustawienia z Forzy 6, ale z materiałami w 4K. Przygotowaliśmy materiały dla modeli, aut, wszystkiego. Upewniliśmy się, że generujemy tekstury 4K.
Dodatkowa przepustowość Project Scorpio sprawia, że wpływ większych tekstur czy dokładniejszych modeli na wydajność wynosi tylko 1 procent. Samo demo to maksymalna liczba samochodów, poruszających się w dwóch kolumnach po torze Nürburgring GP.
- To test obciążeniowy. Jak już mówiłem, spędzamy sporo czasu na testowaniu wydajności naszych gier - wyjaśnia Tector. - Pozwalamy samochodom jeździć. Działa pełna sztuczna inteligencja i fizyka, a auta poruszają się w określonym układzie. W ten sposób sprawdzamy, czy mieścimy się w limitach czasu na wygenerowanie kolejnej klatki obrazu. To jeden z powodów, dzięki którym udaje nam się osiągnąć takie wartości klatek na sekundę. To dla nas bardzo ważna kwestia.
Silnik Forzy bez zacięć generuje kolejną klatkę co 1/60 sekundy. Każdy komponent technologii ma swój „budżet” czasu i nie może go przekroczyć. Zdarzają się jednak przypadki, gdy mocy jest w nadmiarze, gdy na przykład na ekranie jest mniej samochodów. Widzimy to na lewym monitorze. Maksymalne obciążenie to około 70 procent, ale zazwyczaj jest 60-kilka procent, czasem mniej.
- Wartość zmienia się i skaluje - mówi Tector. - Tutaj widzimy 50-kilka, ponieważ jakiś samochód wyjechał z toru, a tutaj powraca do stawki. To zależy od wielu czynników. Czy jesteśmy na sekcji toru, gdzie jest mniej do pokazania, czy też na starcie, gdy widać wszystkie modele?
Test ForzaTech stawia na maksymalną liczbę pojazdów przez niemal cały czas, w celu jak największego obciążenia sprzętu. A może Nürburgring GP upraszcza sprawę?
- Wszystkie [tory] trzymają się budżetu - odpiera Tector, sugerując, że wybór trasy nie miałby wpływu na wydajność. - Budżetowanie określamy na wartościach poniżej 1 FPS. Nie chodzi o to, czy generujemy 60 klatek na sekundę, ale czy dana środowiska zmieściła się w wyznaczonym limicie milisekund. Dzięki temu wszystko się normalizuje i możemy zarządzać procesem w setkach samochodów i na wszystkich trasach. Inaczej by się nie dało.
Prezentacja jest ostra i wyraźna, zestaw testowy Scorpio umieszczono obok telewizora - nie ma wątpliwości, że to właśnie ta konsola rozpędza maksymalnie obciążony silnik Forzy do 4K60, ze sporymi zapasami mocy. Wyniki są imponujące, ale nie możemy zobaczyć tego samego dema włączonego na Xbox One, więc trudno o porównanie, ile faktycznie daje skok z 1080p do 4K.
- Dobrze, że o tym mówisz, bo w tej scenie nie mamy kilku komponentów mieszczących się w budżecie, jak cząsteczki. To byłoby pewnie 14 ms, ale przy takiej konfiguracji aut pewnie bliżej 15 ms - mówi Tector. Oznacza to, że obciążenie GPU na poziomie 60-kilku procent na Project Scorpio, przełożyłoby się na 84-90 proc. na Xbox One przy identycznym widoku na ekranie, w 1080p.
Tector przechodzi do lewego monitora, z włączonym PIX. Przewija zarejestrowane dane GPU, z liniami obciążenia. Narzędzie wskazuje użyte shadery, wąskie gardła i więcej, włącznie z poszczególnymi jednostkami rysującymi układu graficznego. Podobne dane gromadzone są dla CPU. W ten sposób można pokusić się o optymalizację, która na PC jest po prostu niemożliwa do osiągnięcia.
- Przy pracach na Apex przeszliśmy ze środowiska Xbox One na PC, gdzie brak dokładnie skalibrowanych narzędzi do badania wydajności był problemem - przyznaje Tector. - Na Scorpio mamy dostęp do tego typu programu od samego początku i od razu wiemy na przykład, ile milisekund zajmuje wyrenderowanie modelu kierowcy na Xbox One. I dlaczego zajmuje właśnie tyle.
Zakres dostępnych informacji w przypadku całkiem nowej konsoli to spory plus dla deweloperów. Microsoft zapewnia, że Project Scorpio to urządzenie z rodziny Xbox i widać wyraźnie, że dotyczy to także deweloperów: rozwijane i dopracowywane przez trzy lata narzędzia z Xbox One działają równie sprawnie na sprzęcie przygotowanym z myślą o rozdzielczości 4K.
- Od czasu tych pierwszych dwóch dni udało się uciąć kilka milisekund, ponieważ potrzebowaliśmy większego budżetu i dodać kilka opcji w obu wersjach - ujawnia Tector, choć bez podawania detali. - Taki poziom szczegółów pozwala nam na optymalizację zarezerwowaną dla twórców first-party, a zazwyczaj także tylko dla jednej konsoli. Teraz jednak dwa urządzenia są tak podobne i kompatybilne, że optymalizacja po jednej stronie oznacza korzyści także na Xbox One. Możemy wprowadzić usprawnienia po obu stronach.
Po stronie Scorpio zostaje jeszcze sporo niewykorzystanych mocy obliczeniowych, więc jak dalej rozwinąć silnik? Turn 10 nadal pracuje, ale można skorzystać z pełni opcji graficznych Motorsport 6 Apex w wersji PC. Deweloperzy ustawili wszystko na ultra, a całość nadal zachowała poziom 4K60. To potwierdza możliwości nowej konsoli, ale i taki poziom nie obciąża GPU w pełni.
- Szalone jest to, że włączyliśmy poziom ultra dla wszystkich opcji związanych z układem graficznym i mamy właśnie tyle, 88 procent - mówi Tector, wskazując na odpowiednią wartość na monitorze. Zaraz niżej widać wybrane ustawienie wygładzania krawędzi: 4x - czy też 8:4x - sprzętowego EQAA od AMD.
- To oznacza maksymalny poziom detali dla każdego samochodu podczas wyścigu. Wyżej jest już tylko Autovista, czyli to, co zazwyczaj dotyczy tylko auta gracza. Ale taki poziom mamy w całej scenie. To obrzydliwe nadużycie możliwości GPU, no nie?
Ustawienia ultra z PC to podniesienie rozdzielczości i jakości cieni, pokreślenie subtelnych elementów oświetlenia, gęstsza roślinność i dokładniejszy efekt rozmycia obrazu. Jak ujawnia przygotowany przez Microsoft screen z ForzaTech, samochód najbliżej kamery obdarzany jest takim samym poziomem detali, jak ten najbardziej w oddali, nawet jeśli - jak policzyliśmy - zajmuje na ekranie około 1,5 tys. z 8,3 miliona pikseli. Obrzydliwe nadużycie możliwości GPU.
- To nadużycie, ale możemy się na nie zdecydować i mieć jeszcze moc w zapasie - mówi Tector.
Wartość takiego porównania nie będzie idealna, ale próbowaliśmy odtworzyć zawartość ForzaTech na PC. Nie możemy w identyczny sposób umieścić wszystkich samochodów w dwóch równych kolumnach, ale analiza wskazuje na poziom GPU klasy GTX 1070, a nawet ta karta graficzna gubi klatki przy efektach pogodowych. Skrupulatne budżetowanie Turn 10 sprawiłoby, że podobnych spadków nie widzielibyśmy na konsoli. Chodzi jednak nie o bezcelowe nadużywanie GPU, lecz o przeznaczenie dodatkowych mocy obliczeniowych na poprawki, które gracze faktycznie zauważą.
- Świetnym elementem całej tej opowieści jest fakt, że możemy spędzić czas na myśleniu o przyszłości - mówi Tector. - Zamiast zastanawiać się, jak osiągnąć odpowiednią wydajność po włączeniu wszystkiego na ultra, możemy postawić na pewne kompromisy i poświęcić czas na iteracje, zmierzając ku znacznie lepszej jakości obrazu. Zamiast przejmować się ostateczną rozdzielczością i płynnością, możemy skupić się tylko na jakości.
Niestety, Microsoft nie chciał pokazać, co jeszcze działa już na Scorpio - trzeba poczekać na tegoroczne targi E3. Producent zapewnia jednak, że choć Turn 10 posiada jeden z najlepiej zoptymalizowanych silników na rynku, to inne studia osiągają podobne rezultaty. Kluczowe studia miały podobno dostęp do prototypów w siedzibie Microsoftu.
- Wrażenia Chrisa nie są nietypowe wśród innych partnerów, którzy nas odwiedzali. Efekty są różne, ale wszystkie pozytywne. Jest świetnie - zapewnia Kevin Gammill.
- Jeśli mowa o okresie pozostałym do premiery, to chyba jeszcze nigdy nie było to tak szybko. Jak wspominał Chris, zazwyczaj pracuje się do ostatniej chwili - dodaje Albert Penello. - A teraz mamy w pełni funkcjonujące urządzenia, gotowe do debiutu... Faza przygotowań do działania przebiega wśród deweloperów bardzo szybko, więc działamy agresywnie. Podoba mi się obrany kierunek, gdy słyszę, że czas spędzamy na szlifowaniu jakości, nie na optymalizacji silników czy kwestiach technicznych.
O pewności siebie w Microsofcie wiele mówi fakt, że pokaz możliwości Project Scorpio przeprowadzono na liczącym trzy miesiące demie technologicznym. Jak zauważa Chris Tector, silnik Forzy rozwinął się i przeszedł w tym czasie kolejne fazy optymalizacji, w przygotowaniu na Forzę 7. A Turn 10 ma jeszcze sporo zapasu w układzie graficznym, więc spojrzenie na ostateczną wersję gry powinno być fascynujące.
To oczywiście tylko wybrany silnik - jeden z najlepszych - z pełnym wsparciem producenta konsoli i korzyściami płynącymi z pozycji first-party. Nadal potrzebujemy zobaczyć więcej gier, zwłaszcza multiplatformowych, od firm zewnętrznych. Obecnie, we wczesnej fazie, optymizmem napawa fakt, że poprosiłem o demonstrację w czasie rzeczywistym, a przedstawiciel Microsoftu tylko się uśmiechnął i przygotował demo. Byle do E3.