Marek Winiarski

Zabrali mi klatki… fakty i mity o 60 fps

Niedawno odbyła się prezentacja Ubisoftu, gdzie inżynierowie tej firmy zasugerowali, że blokada 60 FPSów wynika tylko i wyłącznie z nacisków producentów wiodących konsol. Jaka jest prawda w tym temacie?

Jeżeli wejdziemy na dowolną forumową dyskusję w tej tematyce, zobaczymy tylko obrzucających się błotem ludzi, mówiących, że ich rozmówca nie ma o niczym pojęcia. Więc zbierzmy sobie wszystko i rozpracujmy.

Zanim zaczniemy, wyjaśnijmy sobie czym rzeczone FPSy są. Z angielskiego Frames Per Second, czyli klatki na sekundę. Każda gra, a właściwie silnik, ma swoją pętle, w której dzieją się różne rzeczy. Np. pobieranie danych od gracza, obliczenia fizyki, wykonywanie animacji i rozrysowanie wszystkiego na scenie. Liczba klatek na sekundę, określa po prostu, ile razy w ciągu sekundy, wykona się taka pętla.

Od czego frame rate zależy? Różnie. Jeżeli np. mamy grę wyświetlającą dużą ilość detali, obciążenie spadnie na GPU, natomiast gdy gramy w RTSa, gdzie głównie liczone są ścieżki i AI przeciwnika, obciążamy CPU.

Przejdźmy do argumentów.

Ludzkie oko nie widzi więcej niż 24fpsy.

MIT

Jesteśmy w stanie zauważyć różnicę między 30 a 60 fpsami. W końcu dwukrotnie zwiększamy liczbę obliczeń, przez co zobaczymy więcej klatek animacji, efekty cząsteczkowe również na tym zyskają. Teoretycznie poprawi się czas reakcji przeciwników, ale tego raczej nie zauważymy. Ale po co teoria, jak istnieje strona, gdzie można sobie porównanie zobaczyć:

http://30vs60.com/

Fakt, czasami mocno trzeba się przyglądnąć, ale efekt jest zauważalny.

Dzisiejszy sprzęt nie udźwignie 60 fpsów

CZĘŚCIOWO PRAWDA

Dzisiejszy sprzęt jest to w stanie przeskoczyć:

Wydajność w grach karty nVidia GeForce GTX 980. Źródło: Benchmark.pl
Wydajność w grach karty nVidia GeForce GTX 980.
Źródło: Benchmark.pl

Jest mały psikus. Są to statystki karty nVidia GeForce GTX 980, czyli obecnie największej bestii na rynku za… 2300zł. Wow. Ręka w górę, kto ma coś takiego “pod maską”. Zejdźmy na niższy pułap cenowy. Sprawdziłem, też najpopularniejszą kartę (najczęściej wyszukiwaną) wg. serwisu Skapiec.pl, ze stajni zarówno nVidii jak i AMD. Oto wynik:

Wydajność w grach karty nVidia GeForce GTX 760 i AMD Radeon R9 280X.
Źródło: Benchmark.pl

Ceny tych cudów to odpowiednio: 900zł za Radeona i 800zł za GeForce. Czyli ponad dwa razy taniej. Jak widać na wykresach, w niektórych grach, dobijają do 60 klatek, ale w wielu im się to nie udaje. Crysis 3 ledwie przekracza 30. Dlatego ograniczenia sprzętu są częściowo prawdą. Ogólnie da radę przekroczyć 60, ale sprzęt ze średniej pułki cenowej, czyli ten, dla przeciętnego kowalskiego, tego nie potrafi. Czyli odblokowanie tych 60 klatek i tak doceni garstka ludzi.

Nie zapominajmy też, że sama grafika to nie wszystko. Reszta parametrów sprzętu również wpływa na wydajność. Nawet prędkość taktowania szyny na płycie głównej ma wpływ na ogólną wydajność sprzętu.

Obecna generacja silników nie potrafi obsłużyć 60FPSów

MIT

Zacznę od cytatu, który mnie rozbawił:
[stextbox id=”info” defcaption=”true”](…)Przeskoczyć z 30 klatek na 60 to podwoić wydajność silnika, nad którego rozwojem pracują najtęższe mózgi na świecie przez dziesiątki lat. Na 30 klatkach się grę blokuje bo dobić do 60 jest obecnie prawie niewykonalne(…)[/stextbox]
A teraz, pokażę wam, jak oszukać najtęższe mózgi na świecie. Otóż jakiś miły pan z Unity wymyślił, że zrobi taką funkcję:

Application.targetFrameRate = 300;

Właśnie oszukaliśmy podły silnik, żeby nie ograniczał nas do 30 klatek. Oczywiście, funkcja nie sprawi, że gra będzie śmigała w podanej liczbie klatek. Jest to liczba klatek, jaką może gra maksymalnie osiągnąć. Jeżeli sprzęt nie będzie domagał, to liczba klatek spadnie. Domyślna wartość tej funkcji, sprawia, że gra osiąga tyle klatek ile jej się uda. Dla gier webowych za to, wymusza 50-60 klatek, zależnie od platformy. Tyle z dokumentacji.

Twórcy nie mają wpływu na liczbę klatek

MIT

Jak mówiłem wcześniej, śmiga sobie ta pętla z różnymi rzeczami, a szybkość zależy od wykorzystanych zasobów. Ale to właśnie programista operuje tymi zasobami. Optymalizacja kodu, może poprawić frame rate. Głównie mamy na to wpływ przy obliczeniach np. AI. Jak grafik wstawił obiekt z miliardem wierzchołków, to już z tym nic nie zrobimy, bez widocznej utraty jakości grafiki. (Oczywiście z tymi wierzchołkami to wyolbrzymienie ;)). Czyli tak naprawdę, możemy optymalizować kod i obiekty wstawiane do gry. Tylko trzeba odnotować, że wszelaka kompresja muzyki i tekstur, to utrata ich jakości. Więc dostajemy większą płynność, kosztem słabszej grafiki.

Producentom konsol blokada klatek na PC jest na rękę

PRAWDA

Dlaczego kupujesz konsole? Bo możesz pograć we wszystko co na nią wyjdzie i na pewno uruchomi się bez problemu. Problem zaczyna się wtedy, kiedy PC za cenę konsoli, daje taką samą lub lepszą płynność rozgrywki. Czemu? Po co kupować konsole, jak na PC pograsz tak samo albo i lepiej, a gry są dwa razy tańsze? Mocny rynek PC może tylko zaszkodzić konsolom, które i tak łatwo nie mają. Oczywiście firmy typu Microsoft czy Sony nie przyznają się do nacisków, bo będzie to PRowy strzał w stopę. Jednak obiektywnie patrząc i mając na uwadze sugestię inżyniera Ubisoftu, ta teoria spiskowa, może mieć w sobie nieco prawdy.

Reasumując

Przejście z 30 fpsów na 60 da nam zauważalną zmianę w grafice, a raczej w płynności wyświetlaniu obrazu. Obecnie sprzętowo i systemowo jesteśmy w stanie to osiągnąć. Jednak rozwiązania sprzętowe są dostępne jedynie dla ludzi z pokaźniejszym portfelem. Dla samych twórców, jest to dodatkowa robota, w postaci optymalizacji kodu, czy animacji, dlatego część twórców może się nie decydować na ten krok, ponieważ nie kalkuluje im się wydanie dodatkowych pieniędzy by uszczęśliwić mały procent graczy. Pamiętajmy też, że wielu z nich to tzw. casuale, którzy grę instalują, grają i usuwają, nie zastanawiając się czy grali w 30 czy 60 czy 35,2 klatkach na sekundę.

Dobre rozwiązanie zaprezentowali panowie pracujący nad grą The Evil Within. Mianowicie wypuścili grę na domyślnych ustawieniach, dając ludziom kod do wklepania w konsoli, który odblokowuje 60 fpsów, zostawiając notkę, że gra może wtedy się sypać. Normalny gracz sobie pogra, a gameofil (odpowiednik audiofila? Oo), będzie mógł sobie taką opcję włączyć. Zostawiona furtkach dla tych, co wiedzą co robią, możliwość gry bez udziwnień dla reszty. Wilk syty i owca cała.

Pokrzywdzeni możemy się czuć, bo mimo wszystko jest to nic innego jak blokowanie rozwoju branży pod względem technologicznym. Jednak ciężko jednoznacznie obwinić za to twórców konsol, bo nie ma na to jednoznacznych i mocnych dowodów. Jednak biorąc pod uwagę słowa Ubisoftu, nie zawsze możemy naskoczyć na twórców, bo nie koniecznie to ich wina. Jednak ludzie z Tango Gameworks, pokazali, że się da. Czy fakt, że gra nie była hypowana przez Sony albo Microsoft, w przeciwności do Unity od Ubisoftu coś znaczy? Być może. Jeżeli ograniczenia znikną wraz z nową generacją konsol, wszystko się wyjaśni.

Exit mobile version