Wpis z mikrobloga

Miałem odpisać w wątku, ale że wyszedł dłuższy wpis z małą kompilacją działania engine gry to postuje jako nowy wpis. Wołam @Tasde

więc jeżeli to grafika zabija konsole, to pozdro dla CDPR, niech najpierw nauczą programować studenciaków których zatrudniają w miejsce każdego, kto nabierze doświadczenia i pójdzie do pracy za poważne pieniądze.


Nie jestem ekspertem, więc swoją zdanie mogę podeprzeć tylko opiniami innych ludzi, które w mojej ocenie brzmią wiarygodnie.

Złożoność świata i wertykalność miasta. Gdzieś po premierze (niestety nie mogę tego odnaleźć) przeczytałem zdanie pewnego znanego dewelopera, który widząc jak skomplikowane i z jak wielu elementów składa się Night City stwierdził tylko, że Redzi muszą być szaleni gdy pomyśleli, że konsole poprzedniej generacji to uciągną. W 100% się z tym zgadzam. Ten filmik dobrze to obrazuje: https://youtu.be/3AbctlG5dv8 - pomijając proces technologiczny, który stoi za generowaniem obrazu to zwracam uwagę na generowanie któregokolwiek budynku w tle. Można łatwo zauważyć jak ogromna liczba oddzielnych obiektów jest tworzona aby po połączeniu w całość była głupim blokiem mieszkalnym. Na pewno wiesz, że gra była pierwotnie projektowana pod efektowny parkour i to miało na pewno duży wpływ na wybór takiej opcji tworzenia budynków. Ostatecznie z gry wycięto możliwość wspinania się po ścianach za pomocą ostrzy modliszkowych, ale wiele z tego co miało służyć do parkouru zostało. W mojej ocenie zostało to ukończone w 90%

Wszystkie wystające elementy poza obrys budynku mają swoją kolizyjność, mają punkty zaczepienia dla gracza do wspinaczki, mają uwzględnione powierzchnie na dachach do poruszania się gracza. Detale - zwróć uwagę ile jest oddzielnych elementów tych bloków. Są klimatyzatory, są balkony, są szyby i okna. Wszystkie te elementy są liczone do ogólnej puli rzeczy tworzących odbicia i rzucające cienie. Balkony mają pełne navmeshe i punkty spawnu dla losowych NPC, który przechadzając się po tych balkonach czy opierając się i paląc papierosa mają zwiększać efekt życia w bloku. Wszystkie bloki mają zapalające/gasnące losowo światła dające iluzje życia w nich. Okna posiadają pewną głębię (super efekt swoją drogą) tworząc wrażenie, że w środku jest mieszkanie z pełnym wyposażeniem - nie jest to płaska tekstura, bo zmieniają się kąty patrzenia gdy się przechadzamy obok takiego okna (ciężko to opisać - wygląda jakby w środku było pełne mieszkanie, mimo iż fizycznie za ścianą nic nie ma).
Przykład:
https://streamable.com/ia014y (wycisz audio bo +18 - odgłosy orgazmu jakiejś panny w tle)

Dalej idąc - ruch uliczny a konkretnie samochody. Samochody składają się znowu z kosmicznej ilości detali i nawet jeśli następuje ty bardzo sprytne działanie mechanizmu LOD to nadal fizyka, szkielet i wnętrze każdego samochodu w niższych teksturach jest w pełnie dostępne. Możemy zajrzeć do każdego samochodu i zobaczyć przytłaczającą ilość szczegółów. Myślisz, że to mały szczegół mało wpływający na wydajność? Watch dogs:legion to usunęły - wszystkie samochody mają przyciemnianie tylne szyby, żeby nie można było zajrzeć do środka a zatem nie ma potrzeby ani tworzenia ani renderowania wnętrz samochodu i obciążania nimi systemu.
Przykład:
https://streamable.com/08lu4z

Najmniejszy element - NPC. Tekstury skóry - najbardziej realistyczne jakie widziałem w grach. Szczegóły ubrań, załamań, przetarć materiału, drobnych cząsteczek - miazga. Owszem, tu też występuje mechanizm LOD, ale na forum, użytkownik komentujący moje filmiki, który będąc grafikiem i modderem przyjrzał się dokładnie jak są renderowane szczegóły ubrań i jak następuje podmiana na wysokie rozdzielczości - nic nie zrozumiałem z technicznych niuansów, którymi to opisywał, ale w skrócie: jest to bardzo zaawansowany system i nie spotykany praktycznie w żadnej większej grze na taką skalę, który daje taki właśnie efekt na zbliżeniach. Jego minusem oczywiście jest stopień skomplikowania i nakład pracy wymagany do stworzenie tego efektu.
Przykłady:
https://youtu.be/UceGjB0yFm4
https://streamable.com/yrb39r
https://streamable.com/xosq4n
https://youtu.be/P7bpxitusxY (ludzie zwracali, że powyższe szczegóły to efekt trybu foto, więc tu jest widok szczegółów z trybu gry. Zwraca efekt "cybernetycznego zaburzenia" przy zoomach, żeby ukryć przeskalowywanie i podmianę tekstur. Ale gdy podejdziemy bardzo blisko do danego NPC gra również płynnie zmienia LOD)

Ray Tracing - ja wiem, że tu jest tak wyśmiewany z powodu przesadnej ekscytacji kolegi Marcina tym systemem, ale nie umniejsza to jego walorom. RT to nie jest jakiś magiczny dodatek, dzięki którym twórca klika i cyk, pojawiają się bajery w postaci odbić i realistycznego oświetlenia. Jego implementacja wymaga wiedzy i nakładów pracy w postaci połączenia ogromnej ilości podsystemów. W skrócie RT występuje wszędzie gdzie się udało go wcisnąć, odbicia występują w każdej powierzchni, która je powinna generować jak wypolerowany stół, okulary NPC czy jego gałka oczna. Odbicia uwzględniają rodzaje powierzchni/szyb ich krzywiznę czy fakturę i na tej podstawie są renderowane. Implementacja systemu DLSS od nvidii pozwala uzyskać piękny Ray tracing nawet na kartach graficznych ze średniej półki (jak moja) przy zadowalającej wydajności.
Przykład:
https://youtu.be/zZ28AAVKpXA
https://youtu.be/6bqA8F6B6NQ (analiza specjalistów z digital foundry, którzy dokładnie tłumaczą i obrazują działanie RT w tej grze)

Wielopoziomowość miasta - coś co wydaje się oczywiste, jest ogromnym wyzwaniem dla projektantów mapy i programistów silnika. Gra musi uwzględnić, że gracz wyjrzy za barierkę i zobaczy poniżej/powyżej kolejny poziom żyjącego miasta z NPC i ruchem ulicznym i wszystkimi szczegółami tam zawartymi. Nie zostało to zaimplementowane na taką skalę w żadnej grze dotychczas.
Przykład:
https://youtu.be/Rfl1Gej2hgY

Zapisywanie w pamięci oraz sejwie efektów zniszczonego świata. Obecnie nie wykorzystywane w żadnej grze poza cyberpunkiem - po opuszczeniu danego rejonu wszystkie gry resetują świat do poprzedniego stanu. Cyberpunk odnotowuje wpływ gracza na świat i zapisuje go (oczywiście w ograniczonym zakresie)
https://youtu.be/GLYw3Wj1oWs

To wszystko tworzy przepiękny ale i bardzo mocno obciążający system obraz miasta. Owszem silnik ma również szereg wad jak tak często wykorzystywany nieszczęśny LOD samochodów uzależniony od fizycznej odległości od gracza zamiast umiejscowienia kamery co powoduje, że przy użyciu zoomu gracz może dostrzec płaskie bitmapy udające samochody 2d. Moduł generujący włosy jest niezależny od reszty postaci co dość często widać i imho dostał downgrade względem wiedźmina, może z powodu ogromnej ilości NPC z włosami naraz na ekranie i potrzebie uzyskania większej wydajności. Model twarzy gracza jest w najlepszym wypadku baaardzo przeciętny - wydaje mi się, że to wina kreatora wyglądu postaci gracza. Oświetlenie wolumetryczne jest na dosyć niskim poziomie co widać na przykładzie lamp ulicznych i w mojej ocenie zostało z czasem pogorszone.

***

System fizyczny. Wydaje mi się, że sam system fizyki w grze należy do jednej z najbardziej zaawansowanych jakie widziałem aczkolwiek z jego implementacją jest różnie.

- zaawansowany system rykoszetów - na taką skalę nie widziałem go w żadnej grze. Rykoszety efektownie i realistycznie odbijają się od powierzchni zadając obrażenia na swojej drodze

- kolizyjność i zadawanie obrażeń przy kontakcie - gra liczy obrażenia od uderzenia przedmiotem np. od samego oberwania przedmiotem w postaci uderzenia granatem w głowę czy potknięcie się gracza/przeciwnika o zwłoki. Owszem na początku było to zbuggowane i silnik przesadzał z ilością obrażeń ale jest to stopniowo poprawiane

- różna energia kinetyczna pocisków - różne pociski mają różną energię kinetyczną. Jest to ogólnie przypisane do jednej z 4 kategorii, od najsłabszych do najmocniejszych, amunicja pistoletowa, karabinowa, śrutowa/strzelby, karabiny snajperskie. Każda z nich powoduje inny efekt na daną powierzchnię: strzał z pistoletu powoduje tylko zakłócenie pracy monitora reklamowego, strzał z karabinu wybija dziurę a strzał ze strzelby roznosi monitor na drobne strzępy. Strzał z pistoletu czy karabinu powoduje drobny dymek po trafieniu w mur ale strzał z ciężkiego karabinu przeciwpancernego powoduje całą chmarę dymu po trafieniu.

- kumulacja energii kinetycznej pocisków i wpływ na środek ciężkości obiektów - strzał z pistoletu w ciężki obiekt jak barierka czy kosz na śmieci z nisko osadzonym środkiem ciężkości nie powoduje żadnego efektu. Strzał z karabinu powoduje lekkie zachwiania - jeśli będziemy strzelać ogniem ciągłym, energia wystrzałów skumuluje się i po chwili przewyższy środek ciężkości obiektu i go przewróci. Strzał ze strzelby jest od razu silniejszy i przewraca obiekt od razu.

- kumulowanie energii uderzenia/kontaktu - po uderzeniu człowieka rozpędzonym samochodem, wiezieniu go na masce przez chwilę i gwałtownym hamowaniu energia kinetyczna jest realistycznie przekazywana na ciało człowieka odrzucając go daleko w przód. Przy próbie przepchnięcia zaparkowanego samochodu naszym jadącym samochodem energia do tego liczona jest na podstawie masy dwóch samochodów. Przy kontakcie z kolejnym samochodem czyli próbie przepchnięcia naraz dwóch przez nasz pojazd energia wymagana do tego jest rozkładana na wszystkie biorące w zdarzeniu pojazdy i w zależności od mocy silnika naszego samochodu może się to udać lub nie.

Te cechy jak i wiele innych (np. fizyka przedmiotów ustawionych jeden na drugim i wpływ grawitacji na nie) tworzy obraz bardzo zaawansowanego silnika fizycznego. Owszem, wiele elementów, które opisałem występuje w innych silnikach fizycznych ale szczerze mówiąc to nie spotkałem takiego silnika, który wykorzystuje te wszystkie rzeczy naraz. Z drugiej strony jego implementacja jest wybiórcza i raz ma wpływ na wiele elementów dookoła a drugi raz połowa elementów jest wyłączona z jego działania. Rozczarowuje również brak implementacji fizyki wody na większą skalę. W mojej ocenie silnik został przygotowany wcześniej i w miarę dopracowany ale przerwano prace związane z jego implementacją w grze z powodu chyba wszystkim wiadomych - przyspieszenie premiery i przekierowanie wszystkich zasobów firmy na optymalizację gry zamiast dokończenia działania nieskończonych systemów.

Przykłady pracy silnika fizycznego:
https://youtu.be/lK9-Vbsxcks (zniszczalne otoczenie i efekty eksplozji)
https://youtu.be/ELmWXkhML-M (różna energia kinetyczna pocisków)
https://streamable.com/ufa2jp (różne efekty trafienia w ten sam mur w zależności od rodzaju amunicji. zwraca uwagę dymek unoszący się z dziury i gorące odłamki pocisku po trafieniu z karabinu przeciwpancernego)
https://youtu.be/HB-QHEVCmY0 (efekt przekazania energii kinetycznej samochodu na przechodnia 0:12 fizyka pojazdu po zderzeniu z pieszym, praca fizyki zawieszenia i efekt sprężynowania po przejechaniu kołami po człowieku 1:04)
https://youtu.be/eONcJhrwfv4?t=558 (fizyka masy i energii samochodów przy pchaniu obiektów)

#cyberpunk2077
źródło: comment_1619846805TWnczOZdVby3Hexhul0rv1.jpg
  • 22
via Wykop Mobilny (Android)
  • 12
@pablo397: nie czytam całego bo za długie. Ale mam kilka "ale", gdyby chcieli to by zrobili tak, że na old genach działa. Taki Rdr2 który wygląda lepiej od cyberpunka jakoś chodzi na Old genach zajebiscie, jak na grę na konsoli oczywiście, cyberpunk był niegrywalny, teraz już chyba trochę jest.
Ta energia kinetyczna po uderzeniu pojazdem to zwykła zaprogramowana animacja więc tutaj mogli to odwzorować jak chcieli, żadnej fizyki w tym nie
@pablo397: Dopiszę z punktu techno nerda :-)

w projekcie W3 jak i Cyber bardzo dużo mieszała Nvidia. Obie gry wykorzystują Nvidia PhysX ( tutaj dla psychofanów AMD - zarzucających że ten silnik do G. - większość silników gier ma 3 silniki fizyki, psycho fani AMD nawet nie wiedzą że duża część gier jest na nie lubianej NV). Tylko mamy podział na akcelerację przez CPU oraz GPU. w W3 mamy obie techniki
nie czytam całego bo za długie.


@Megawonsz_dziewienc: to jest ten poziom dyskusji, której spodziewam się po krytykach gry ( ͡° ͜ʖ ͡°)

gdyby chcieli to by zrobili tak, że na old genach działa


wiem nawet jak mogła taka dyskusja wyglądać:

- Panie Badowski, robimy tak, żeby gra działała na old genach?

- Nie, nie chce nam się. Chodźcie na pitce


Taki Rdr2 który wygląda lepiej od cyberpunka
@pablo397: To co pokazałeś nie ma nic wspólnego z DLSS. To rozwiązanie AMD to dynamiczna zmiana rozdzielczości ( czyli to samo co stosuje się w konsolach od kilku lat - niby masz 4K ale gra działa od 1800p do 1080p w zależności od złożoności klatki tak aby wyświetlać stałe 30 fps ) - i takie coś to rozwiązanie AMD dla PC

DLSS działa inaczej - ustawiasz rozdziałkę 4k jako obraz wynikowy,
18 fps bez DLSS dostaję 32-33 fps w bardzo podobnej jakości obrazu.


@cin123654: baaardzo naciągane. DLSS znacząco obniża jakość obrazu, gdy się człowiek przyjrzy - bez tego tekstury są ostre jak żyleta, z włączonym DLSS sporo bardziej rozmyte ale na akceptowalnym poziomie
@pablo397: dlss raczkuje, pamietaj że całą magię robi AI i caly czas się uczy. A na rozmyte tekstury, panel NV - wyostrzenie obrazu - 0.75. I po problemie. Dla ciekawosci AMD siedzi od roku i mysli nad podobnym rozwiazaniem ale z braku jednostek uczenia maszynowego w GPU ich technologia musi być czyms innym. Tworcy Metro EH zapowiedzieli że twchnologii AMD nie beda wdrażać. Kolejna technologia ktora bedzie martwa.
Chociaż widzę, że nie było sensu bo jesteś cybersimpem


@Megawonsz_dziewienc: możesz mnie nazywać jak tam sobie chcesz, twoja sprawa. Ja uważam siebie ani za krytyka ani za fana gry. Staram się zarówno chwalić jak i krytykować grę w obiektywny sposób.

nie dostrzegasz wad jak i tego w jaki sposób pozorują otwartość świata xD

wskaż mi choć jeden fragment mój albo mojego rozmówcy jego zarzut w którym pada jakiekolwiek stwierdzenie na temat
@pablo397: AA i jeszcze ciekawostka, NV jak pokazywała DLSS 1.0 pokazała demo gry gdzie DLSS ustawiony był na 2X. Według nich mieli dwa ekrany z grą jeden 4k drugi 1440p. Zastosowanie DLSS 2x sprawiało że obraz na ekranie 1440p był lepszej jakości niż ten na 4k, mniejszym kosztem utraty FPS. Na chwilę obecną DLSS działa w drugą stronę aby dać bossta fps. Czekać tylko jak NV doda opcję poprawy jakości obrazu
@Megawonsz_dziewienc: zgadzam się, mieli do dyspozycji kilka assetów i je powielali, automaty są wszedzie i aż do porzygu. Night City w większości to martwe miasto. Wszystko oparte wyznaczone ścieżki, znikające NPC i samochody, brak życia w mieście, latające samochody do których nie możemy wsiąść, brak jakichkolwiek interakcji w mieście.

Ostatnio w RDR jak wchodziłem do sklepu, to ktoś ukradł mi kasę i musiałem go gonić aby ją odzyskać. Albo ktoś zaczepił