Dlaczego twórcy niektórych gier ograniczają opcje?

1

W niektórych grach twórcy gry ograniczają ustawienia gry i nie można wyłączyć w nich AA (masz tylko do wyboru minimum AA2 lub więcej), cieni nie da się wyłączyć, VSync też się nie da, paru innych rzeczy także się nie da. Jaki sens jest w tym? Mam wrażenie, że producenci kart graficznych i innych podzespołów maczali w tym palce, bo jaki problem dla programistów dużej gry jest wstawienie paru opcji do menu? (albo nawet do pliku INI ukrytego gdzieś na dysku)? I celowo pliku ini nie ma i opcje celowo są ograniczone do minimum. Przez to osoby ze słabszym sprzętem są zmuszone do sprzedania gry lub ulepszenia komputera, bo jakiś idiota nie pozwala wyłączyć kilka rzeczy (a panel do kart AMD itd nie zawsze w laptopach pozwala na wyłączenie AA całkiem dla każdej aplikacji).

0

To pytanie do twórców gier.

Ale mogę zaspekulować: pewnym problemem może być to, że masa opcji wymusza bardziej elastyczny kod, a być może programistom się nie chce i dają funkcjonalności na sztywno przez co jest szybciej i taniej zakodzić :)

1

Sam jakbym tworzył grę to bym nie pozwalał o zbyt dużą ingerencję w takie rzeczy. Raz bo większosc ludzi i tak nie zdaje sobie sprawy z tego co jest od czego, a dwa... po co ktos ma grac w gre ktora wyglada slabo? Jeśli ktoś później taką grę zobaczy przez chwilę to raczej nie oceni jej na podstawie zawartości ale wyglądu, a jako twórcy zależałoby mi bardziej na tym by więcej osób ją kupiło, prawda? :)

I tak jak Wibowit wspomniał - więcej opcji to i większa szansa, że nowe bug'i wyjdą. A testowanie na różnych wersjach to o wiele większy nakład czasu, do zakodzenia, jak i sprawdzenia tego.

1

To nie do końca jest tak, że wszystkie opcje mają wpływ na kod. Te rzeczy dot. filtrowania (AA, AF, filtrowanie tekstur itd) i różne inne (np. vsync) to tylko większe lub mniejsze ustawienia sterownika (czy jak to nazwać w sumie - implementacji OGL czy DX). Sama gra ma chyba niewiele z tym wspólnego. Nie wiem, czy program gry może w jakiś sposób "podpowiadać" na temat tego filtrowania, co może wymuszałoby jakieś dodatkowe kodowanie. Nie wiem jak tam AMD, ale w ustawieniach sterownika GPU Nvidii mogę wyłączyć lub włączyć całą masę takich opcji dla każdej aplikacji.

To co powinno dać się ustawić to różnego rodzaju poziomy szczegółowości - tekstur, oświetlenia, modeli itd. To z pewnością wiąże się z dodatkowym kodowaniem.

0

Nie wiem, czy program gry może w jakiś sposób "podpowiadać" na temat tego filtrowania, co może wymuszałoby jakieś dodatkowe kodowanie
Program może podpowiadać jakiego ma użyć filtrowania, AA, itp., i jest to linijka czy dwie więcej kodu¹ /i dwadzieścia na dodanie opcji do menu ;)/

Jestem przeciw ograniczaniu opcji do zera. Ale nie spotkałem się z takim drastycznym przypadkiem. Pewnie dlatego, że nie gram w nic nowego. No, może World of Tanks raz na miesiąc, ale tam opcje są. Choć akurat tam opcje mam na maksa (prawie).

¹) OK, niezupełnie. W OpenGL pod Windows, jeśli korzystamy z fixed-function, trzeba otworzyć okno, zainicjować kontekst na domyślnych ustawieniach, pobrać z systemu wskaźnik do funkcji odpowiedzialnej za konfigurację AA, zniszczyć okno, otworzyć nowe okno i zainicjować kontekst z docelowymi ustawieniami. Ale jeśli korzystamy z shaderów to i tak trzeba przechodzić przez tę katorgę, więc jest mniejszy dodatkowy nakład pracy.

0

A właśnie nie do końca.

Przez tzw deferred rendering (czy tam deferred shading) nadpróbkowanie robi się zupełnie innym sposobem niż tradycyjnie. Zależnie od implementacji, to programowe AA może być wspawane w silnik. DX10 (lub DX10.1 nie pamiętam dokładnie) daje możliwość łączenia deferred rendering ze sprzętowym nadpróbkowaniem, ale sporo gier dzisiaj dalej jest tworzona pod DX9, z prostego powodu: DX10+ nie są dostępne na WinXP.

Vsync wbudowany w sterowniki to najprostszy tryb Vsynca i działa on średnio. Np na konsolach, jeśli konsola większość czasu generuje dużo poniżej 60 klatek to ustawia się blokadę na 30 klatek. Podobno wtedy płynność jest lepsza niż przy zmiennym FPS pomiędzy np 35 a 50 FPS. Niektóre gry działają jeszcze inaczej, np Rage od id Software działa tak, że jakość obrazu jest dostosowywana tak, by utrzymać stałe 60 FPSów.

Z wymuszeniem AF z poziomu sterownika chyba nie powinno być problemów.

0

Z Vsync to jest tak, że lepiej go ustawić, jeśli gra działa nam na powyżej 75 klatek na sekundę. Większość monitorów i tak tego nie wygeneruje (60 - 75 klatek to standard), a jeśli gra wyrzuca dużą ilość klatek nadprogramowo (np. 150) to może to powodować przemęczenie karty graficznej.

Ograniczenia co do opcji mają różne powody:

  • Producent chce jak najszybciej ukończyć grę, bo dziś na rynku liczy się szybkość.
  • Producent chce by jego gra wyglądała jak najlepiej i była tylko w taki sposób prezentowana.
  • Kwestia kompatybilności z różnym sprzętem. Najlepiej po prostu dać opcje, które będą działać pewnie i niezawodnie.
  • Dostosowanie się do najnowszych kart i robienie gry bezpośrednio pod nie. lepiej zrobić grę dobrze działającą na najpopularniejsze karty niż grę uniwersalną, ale sypiącą problemami.

Zauważ, że teraz gry często mają dziwne problemy z grafiką. Czasami pojawiają się artefakty, czasami tekstury wyglądają dziwnie, czasami coś się nie doczytuje itd itd.
Kiedyś tego nie było, bo nie było tylu odmian kart graficznych.

0

Teraz gry projektują ludzie od marketingu i to oni mówią co ma być w grze i przede wszystkim kiedy ona ma się ukazać. Dodatkowe opcje to dodatkowy czas i pieniądze. Programista nie ma tu nic do gadania, robi co mu każą.

0

Producent chce by jego gra wyglądała jak najlepiej i była tylko w taki sposób prezentowana.
zuo!

Kwestia kompatybilności z różnym sprzętem. Najlepiej po prostu dać opcje, które będą działać pewnie i niezawodnie.
Przecież wycięcie opcji ogranicza kompatybilność, do samych najnowszych kart...

0

No własnie. Ogranicza tylko do małego spectrum, które można doszlifować w takim stopniu aby było jak najmniej błędów.

0

Hmmm. Niech no ktoś popatrzy na Little Inferno, albo World of Goo. Tam w ogóle nie ma żadnego menu opcji ;) Są jakieś pliki tekstowe z konfiguracją, dla WoG (starszej gry) jest bardziej rozbudowany, zaś dla LI (nowszej gry) ten plik jest ograniczony do minimum, do grafiki mamy tylko vsync. Twórcy chcą aby gra działała wszędzie, ale żeby dostosowywała się automatycznie do środowisk uruchomieniowych graczy.

0

Większość monitorów i tak tego nie wygeneruje (60 - 75 klatek to standard), a jeśli gra wyrzuca dużą ilość klatek nadprogramowo (np. 150) to może to powodować przemęczenie karty graficznej.

Karta graficzna "męczy" się tak samo bardzo, gdy nie wyrabia z obliczeniem 30 fpsów i gdy wyrabia z policzeniem 150 fps ;] To chyba logiczne, że skoro grafika nie daje rady to nie dlatego, że się opieprza, tylko dlatego, że sunie na maksymalnych obrotach, ale to i tak za mało ;) [ofc pomijam sytuacje, gdy na niewyrobienie się z klatką ma wpływ procesor, ale takie przypadki się dziś chyba nie zdarzają]

0

[ofc pomijam sytuacje, gdy na niewyrobienie się z klatką ma wpływ procesor, ale takie przypadki się dziś chyba nie zdarzają]

Zdarzają się i to często, dlatego gracze kupują procesory z wysokiej półki i je jeszcze mocno podkręcają. Powodem jest głównie narzut i mała elastyczność wysokopoziomowych sterowników z interfejsem typu OpenGL/ DirectX. Na konsolach jest dostęp niskopoziomowy do sprzętu przez co narzut sterownika jest mniejszy, możliwości są większe (np ręczne zarządzanie pamięcią, ręczne zarządzanie każdym klastrem shaderów, etc) jak i nie ma niepotrzebnych synchronizacji.

Natomiast jeśli w danej grze komputer generuje prawie zawsze lub zawsze więcej klatek na sekundę niż monitor jest w stanie wyświetlić to włączenie VSynca jest jak najbardziej logiczne - zmniejsza obciążenie karty (a co za tym idzie hałas, jeśli wiatraki mają dynamicznie ustawianą prędkość; do tego jeszcze pobór prądu trochę spada), eliminuje tearing, a na laga to raczej nie wpływa.

0

@Wibowit: Zwykle, gdy włączam Vsync (do 60fps) kiedy gra bez vsync wyciąga np. 70fps - to z vsync klatek jest 45-50 - więc chyba vsync daje grafice jeszcze "ekstra" robotę i raczej opłaca się to włączyć dopiero gdy liczba fps jest dużo wyższa niż ta, do której byłaby synchronizacja?

0

vsync nie daje grafice ekstra roboty, tylko sztywne ograniczenie fps do 60 powoduje, że te 70 które wyrabia karta nie do końca wpasowuje się w narzucone 60 - część klatek wypada, i w efekcie masz poniżej 60.

vsync ma sens gdy karta wyrabia znacznie więcej niż te 60, np 200 ;-)

0

No to chyba macie jakieś zwalony VSync albo wasze komputery generują klatki w bardzo nierównych odstępach czasu. Jeżeli odstępy między klatkami są bardzo nierówne, to postrzegana płynność jest dużo mniejsza niż gdyby klatki były generowane równo przy tym samym FPS. Może macie jakieś dual-gpu albo inne cudo?

1 użytkowników online, w tym zalogowanych: 0, gości: 1