W końcu opublikowano post, w którym przedstawiono techniczne aspekty prac nad optymalizacją. Jeśli jesteś Vanu z pewnością i tak to wszytko już wiesz. Jeśli jesteś TR i czegoś nie rozumiesz, idź zapytaj dowódcę. Jeśli nadal nie rozumiesz, oznacza to, że jesteś HA – nie martw się o to teraz. Jeśli jesteś NC, to prawdopodobnie wszystko to co się dzieje jest spiskiem…
Informacje opublikowane przez CodeForge są bardzo techniczne i najmocniej przepraszam jeśli coś przetłumaczę w niewłaściwy sposób. Poza tym post jest bardzo długi i ma w sobie wiele żartów i anegdot, więc napiszę tylko o tym co jest istotne.
——————————————-
PlanetSide 2 osiągnął etap w swoim rozwoju, w którym znajdują się już wszystkie podstawy jej późniejszego funkcjonowania. Projektanci maja szeroki wachlarz opcji do tworzenia treści, artyści mają co najmniej minimalny zestaw narzędzi, UI działa dobrze i jest zrozumiałe i mamy prawdziwy Samouczek (nigdy więcej: „Zapraszamy do gry” *BUM* w środek walki). Gracze z wielu zakatków świata są w stanie grać w PlanetSide w ich ojczystym języku i innych dostępnych.
Doszliśmy do takiego momentu, kiedy mogliśmy pozwolić sobie na poważniejsze prace nad optymalizacją i Smedley powiedział: „Już czas, naprawcie to”. Wszyscy chcieliśmy mieć czas potrzebny na większe zmiany i zrobić to prawidłowo, bo bez względu na to jak wiele pracy jest włożone w PlanetSide 2, gra nie jest zabawna gdy ma się niskie FPS.
Dlatego też zdecydowano się na danie swobody wszystkim zespołom aby naprawili i ulepszyli rzeczy, które normalnie zajęły by dużo czasu. Na koniec naszych zmian powinniście zobaczyć duży i zauważalny wzrost w szybkości klatek oraz kilka dodatkowych korzyści, które wynikły w trakcie prac.Każdy z członków zespołu aktywnie poszukuje i wdraża sposoby, aby gra chodziła szybciej, dzięki czemu możemy dostarczyć lepszą rozgrywkę.
No dobrze, to przejdźmy do konkretów…
- Fizyka
Ta gra zawiera w sobie elementy fizyki, które są bezkonkurencyjne w swojej złożoności. Podczas gdy normalne gry mogą mieć w sobie nawet do 100 obiektów odbijających się i mających kolizje, PS2 w niektórych bitwach ma ponad tysiąc takich efektów.
Dlatego w czasie wdrażania projektu OMFG spędzamy bardzo dużo czasu restrukturyzując złożoność efektów fizycznych, które to zmiany nazywamy „Adaptacyjny Poziom Szczegółowości„. Oznacza to, że będziemy obniżać ilość pracy jaką robi symulator fizyki na podstawie FPS gracza, jak i odległości od obiektu.
Niestety, niektóre z rzeczy, które robimy są eksperymentalne. Mamy wspaniałe pomysły od osób najlepszych w branży jak rozwiązać nasze problemy z wydajnością gry, jednak na koniec 60% to programowanie i 60% to sztuka.
Wraz z Adaptacyjnym Poziomem Szczegółowości mamy nadzieję na emulowanie klatek, których nie symulujemy oraz wygładzenia wszystkich błędów w symulacji, które mogą wystąpić. Zajmie to nam dużo pracy i kofeiny, a na koniec jeszcze ustalenie tego czy jest to wystarczająco dobre. Jeśli chodzi o wpływ na FPS, nie będzie za duży, chyba, że ktoś ma komputer z 2-4 rdzeniami, które powinny odczuć ogromny wzrost FPS szczególnie w dużych walkach.
- Overhead Manager (Znaczki na głowami graczy)
Teraz, w dużej bitwie gra spędza bardzo dużo czasu rysując te małe znaczki jakie widzicie nad głowami przyjaciół , jak i wrogów. Mimo iż to tak nie wygląda, jest to tak naprawdę bardzo skomplikowany system aby upewnić się, że są pokazywane, nawet kiedy postać nie jest widoczna dla ciebie i nie pokazywać ich, kiedy nie powinniśmy ich widzieć. Widzimy rzeczywista poprawę, gdy przerabiamy cały ten system, który stał się bardziej wydajny. Przepisujemy także kod renderowania znaczków tak aby był znacznie szybszy.
- Aktualizacja Gracza
Im więcej graczy wokół Ciebie, tym więcej czasu klient gry spędza czasu na aktualizowaniu informacji o nich. Chodzi tutaj głównie o odgłosy walk, poruszania się, czy też wystrzałów, statystyki, itd. Klient gry spędza odpowiednia ilość czasu na każdą dynamiczna jednostkę upewniając się, że rzeczywiście jest ona dynamiczna dla Ciebie. W celu uczynienia tego bardziej wydajnym, gra będzie aktualizować tylko część z nich na każdą klatkę i będzie mądrzejsza czy potrzebują pełnej aktualizacji. Wczesne testy wykazały, że po tych zmianach tylko 10% aktualizacji dynamicznych obiektów jest faktycznie potrzebne w porównaniu do 100% obecnie. W dużych walkach, będzie to bardzo przydatne.
- Aktualizacja Animacji
Planetside 2 ma naprawdę obszerny system animacji z każdym modnych technicznym słówkiem o jakim możecie pomyśleć. Animujemy znacznie więcej rzeczy niż inne gry poprzez niektóre bardzo złożone sieci. Dla naszej optymalizacji w animacji szukamy sposobów na przetwarzanie mniejszej ilości animacji na klatkę i kiedy one są przetwarzane, zmniejszenia złożoności każdego powtarzanego procesu aby jednaj utrzymać wysoką jakość. To jest ciężka praca i odbywa się między zespołem kodowania oraz sztuki ale jesteśmy przekonani, że uzyskamy tutaj dobre rezultaty.
- Interfejs Użytkownika
Nasz interfejs użytkownika jest bardzo skomplikowany mimo iż tak nie wygląda. Istnieje wiele dziesiątek tysięcy linii kodu, które cały czas go obsługują, tak aby gracz miał wiecznie aktualne informacje. Jednak teraz widzimy obszary w których możemy obniżyć obciążanie na klatkę, aby gracz miał te same dane co dotychczas. Jesteśmy w trakcie prac nad optymalizacja minimapy oraz HUD aby obniżyć czas na klatkę do 10% tego co jest obecnie.
Poza tym aktualizujemy nasze oprogramowanie dla UI do najnowszej wersji, która zawiera już pewne optymalizacji powodujące dalszy spadek czasu potrzebnego do rysowania informacji na UI.
Ponadto rozdzielamy części interfejsu użytkownika na trzy części, z których każdy będzie mógł pracować na innym wątku. To rozdzielenie pozwala także uruchomić każdy kawałek UI w innym tempie, więc nie wszystko będzie musiało być aktualizowane co klatkę.
- Okluzja/ Widzialność (Occlusion / Visibility)
Planetside 2 ma ogromny świat – 64km kwadratowe wypełnione ponad 100.000 przedmiotów i tysiącami graczy na każdym kontynencie. Każda kombinacja siatki (wielokąty, które tworzą obiekt) i tekstury (rzeczy, które malujemy na siatce) musi być indywidualnie i szczegółowo opisane na karcie graficznej, a następnie renderowane.Więc jak będziemy renderować te tysiące rzeczy na każdą klatkę? Odpowiedź jest prosta – Nie będziemy!
Na początku podzielimy kontynent na całą masę sposobów a następnie użyjemy kodów z ostatniego dziesięciolecia w celu określenia, jaką część tych rzeczy może gracz rzeczywiście zobaczyć. To jest właśnie widoczność. Chcemy również uniknąć renderowania rzeczy, które są za czymś innym, czy to dynamicznego obiektu (osoba, kula), czy też statycznego obiektu (budynek). To jest właśnie okluzja.
Używamy oprogramowania innej firmy zwanego Umbra i jako część procesu OMFG aktualizujemy jej wersję do najnowszej, która wymaga od nas przeprogramowania w jaki sposób działa nasza ścieżka widoczności i zmieniając kilka czynników w kliencie gry oraz naszych narzędziach.
Zmiany te znacznie zmniejszą czas spędzony na klatkę na renderowaniu tego co jest widoczne, co oznacza, że gracze odczuja wymierne korzyści w bardziej skomplikowanych scenach (tysiące obiektów). Jesteśmy również w trakcie wprowadzania widoczności całkowicie w innym wątku, więc gracze z systemami wielordzeniowymi będą zadowoleni ze zmian, a użytkownicy AMD będą mieć duże korzyści ze zmian w widoczności.
- Renderowanie Multi-rdzeniowe
Wiele elementów w Planetside 2 jest już w osobnych watkach, ale każdy z tych wątków często musi być połączony z głównym wątkiem w celu renderowania. Dlatego część renderowania, który w istocie komunikuje się z DirectX, umieścimy na osobnym wątku dokładnie tak jak UI. W ten sposób główny wątek ma mniej do zrobienia na klatkę, a posiadacze 4 i więcej rdzeni odczują znacznie ulepszone FPS.
- Więcej Narzędzi
Pracujemy nad dodaniem więcej narzędzi dla nas, tak aby zobaczyć co naprawdę dzieje się w tych wielkich bitwach i gdzie powinniśmy ulepszyć/ zmienić kod.
Jestem również podekscytowany z naszych trwających wysiłków na rzecz utworzenia poziomu referencyjnego (Benchmark Level). SOE wierzy w dawanie graczom jak najwięcej narzędzi i to jest kolejny przykład tego. Zamierzamy dać Wam możliwość zmierzenia klatek w statycznym otoczeniu, dzięki czemu z każdą aktualizacją gry będziecie mieli porównanie jakie są zmiany. Gracze będą mogli latać/ biegać, a gra będzie obliczać różnego rodzaju wskaźniki dotyczące wypełnienia i aktualizacji obiektów, czasów UI i setki innych. Potem, na koniec, będziecie mogli zobaczyć wynik i przeanalizować go, a my go także otrzymujemy wraz z waszą specyfikacja sprzętową. Posiadanie statycznej sceny w której gracze moga testować i wyszukiwać problemów z wydajnością ma dla nas ogromne znaczenie. od teraz nie będziecie mówić: „Miałem X FPS w barze na Indar w zeszły wtorek gdy padał deszcz„. Od teraz będziecie w stanie powiedzieć: „W zeszłym tygodniu miałem wynik 8300 a teraz jest ponad 9000!„
- Podsumowanie
Będziemy z Wami rozmawiać o tym co robimy i dlaczego to robimy. Te optymalizacje poprawią grę każdego gracza, a nie tylko tych posiadających najsłabsze komputery. To znaczący wzrost wydajności, który zmieni grę na lepszą.——————————————–
No i co o tym sądzicie? Już widzę jak mój komp padnie po tych zmianach zważywszy, że ma ponad 5 lat 🙁
Nie martw się, zanim skończą te optymalizacje, Twój komp będzie miał 10 lat… Nie zapowiada sie to optymistycznie. Dla mnie brzmi to jak techniczna zasłona dymna, której przekaz jest taki, że potrwa to jeszcze całkiem długo. Nie wspomnieli nic o chociaż planowanym końcu prac, czy przynajmniej jakiegoś ich pierwszego etapu… Jeśli nie planują dodać czegoś sensownego na pierwszą rocznicę premiery, to moim zdaniem stracą sporo graczy…
Nic nowego, na pierwszy rzut oka widać w grze nadmiar rysowanych elementów i błędy w rysowaniu. Każdy kto się zajmował trochę grafiką i choć raz wpadł pod tekstury widział ile jest bezużytecznych poligonów czy ich nadmiaru. Fajnie że będzie wreszcie obsługo wielu rdzeni, to mnie najbardziej cieszy tak samo jak rysowanie w trybie rzeczywistym bo na dobrą sprawę po chu** mi wczytywać bazę która ma tysiące oteksturowanych poligonów a której w ogóle nie widzę bo jest po drugiej stronie góry. Szkoda że nie podali kiedy można by się łatki doczekać bo o ile tekst powyżej to nieczcza gadka to szykuje się pozytywna rewolucja PS2 😉
No dobra, bla bla bla a szary człowiek dalej nic nie wie ;D
Ale właśnie nie ma żadnych dat, nawet nie powiedzą w latach ile to potrwa ;]
Chociaż z drugiej strony po kilku miesiącach z SOE musze powiedzieć że, ustalanie czasu ich pracy na czym kolwiek nie jest ich mocną stroną.
-Matt co z tą kawą?
– Ekhm,,, Pracujemy nad tym…
Widzisz… cały czas mówiłam: SOE, a wy nie wierzyliście. Nigdy nic nie biorę na słowo 😛
Ale tak czy siak, i tak duzo się zmieniło w ciągu tego roku w PlanetSide 2.
Optymalizacja prawdopodobnie wyjdzie wraz z premierą PS2 na PS4, czyli chyba listopad…
Na razie zapowiada się obiecująco, mam nadzieję że do końca prac nad optymalizacją zrobią jeszcze więcej. A nawet po tym wielkim aktualizowaniu gry, nie przestaną się tym zajmować…
Nic konkretnego ponieważ nic nie da się za bardzo o tym napisać. Jakby zaczęli pisać konkrety większość nie zrozumiałaby tego. Jak widać Pani i Władczyni tego bloga też popełniła mały błąd w tłumaczeniu właśnie z niewiedzy (co nie jest czymś złym – nie można wiedzieć wszystkiego). Zamiast „100 kształtów” w opisie PhysX powinno być „100 obiektów”.
Widzisz, ale ja napisałam od razu, że mogę się pomylić 😛
Już poprawiam 😀
P.S. I tak cud, że dopatrzyliście się jak na razie jednego błędu zważywszy na to, że nie jestem osobą „techniczną” 😀
Wie ktoś może co to za 0,5gb? Może to być optymalizacja?
Hotfix, o którym oczywiście poinformowali w ostatniej minucie jak juz mnie nie było przy kompie :/
http://babagra.pl/forum/viewtopic.php?id=996
PhysX to technologia Nvidii i to nie o nią chodzi w oryginalnym poście. Chodzi po prostu o fizykę w grze.
– Pilots can no longer utilize free-look to lock on to targets– czyli namierzanie tylko patrzac po kabinie pilota, a szkoda…
– Fixed a bug that caused Thermal or NV to persist when switching from the gunner seat to the driver seat in the Harasser – to już z drugi raz naprawiają…
– Added a fix to prevent AOE damage hitting players inside IFF shields from certain angles – z jednej strony szkoda bo sam tak kilka kili nabiłem, ale z drugiej głupio dostawać cały czas jakieś obrażenia farmiąc przez szybke ;]
– Fix for guided rockets not traveling the correct path on other clients – striker też ?
– Fixed Striker missiles flying through terrain and buildings and still hitting targets – Nastanie czas ładu i porządku. Ale najpierw będą musieli zasypać leje po Daltonach ;D
Od kiedy zacząłem grać PhysX nie działa 🙂