Kolejny krok w stronę łatwiejszego tworzenia gier. Jest nim Mantle
Zeszłotygodniowa konferencja AMD przyniosła wiele nowości, wśród których zabrakło jednego – dokładnej specyfikacji oraz daty premiery nowych kart graficznych z serii Radeon. Jednak o wiele ważniejsze od wprowadzenia nowych GPU może być zaprezentowanie Mantle, czyli niskopoziomowego API, które pozwoli tworzyć jeszcze ładniej i lepiej zoptymalizowane gry. Jest to standard otwarty, ale stworzony przez AMD pod kątem premiery konsol do gier nowej generacji oraz komputerów wyposażonych w karty oparte na architekturze Graphic Core Next, stosowanej w kartach graficznych Radeon HD 7000 i nowszych.
Mantle? Co to?
Mantle to API, czyli interfejs pozwalający na komunikację między dwoma różnymi elementami, w tym przypadku między programem a kartą graficzną. Dzięki różnym API programista nie musi tworzyć gry lub programu z myślą o każdej możliwej konfiguracji sprzętowej. Nie obchodzi go, na jakim sprzęcie będzie uruchamiany kod, pisze program tylko i wyłącznie z myślą o API, z którym zgodność ma zapewnić interesujący go sprzęt. Przynajmniej w teorii, ponieważ w praktyce konieczne jest stosowanie różnych tricków i obejść, by zachować pełną zgodność, czego przykładem są wypowiedzi Johna Carmacka na temat DirectX. Obecnie najpopularniejsze API na rynku gier pecetowych to właśnie znany każdemu DirectX oraz odchodzący z owego rynku, ale doskonale radzący sobie w świecie mobilnym OpenGL. Niebawem do tego grona dołączy również Mantle. Jego szczególną zaletą, a według niektórych wadą, jest to, że został on wyspecjalizowany pod kątem architektury Graphic Core Next używanej w nowych Radeonach oraz układach graficznych konsol nowej generacji – Playstation 4 oraz Xbox One.
Mantle to interfejs niskopoziomowy, co oznacza, że polecenia API są bardzo zbliżone językowi maszynowemu procesora graficznego. Analogicznie, niskopoziomowym językiem programowania jest znany wielu osobom Assembler. Zastosowanie interfejsu niskopoziomowego to znacznie większa kontrola nad sprzętem, lepsze wykorzystanie podzespołów oraz wynikająca z tego lepsza optymalizacja programów i większa wydajność finalnego produktu. Jednak API takie ma też swoje wady, czyli odpowiednie działanie wyłącznie ze sprzętem, z myślą o którym zostało stworzone. Z tego powodu pojawiały się obawy co do tego, czy Mantle będzie działać z kartami graficznymi Nvidii. Okazało się jednak, że Mantle to standard otwarty i Nvidia też może go wykorzystać. Niekoniecznie będzie chciała to zrobić, ale może zostać do tego zmuszona przez programistów.
Mantle jest potrzebne rynkowi, ale nie Intelowi oraz Nvidii
Jak już wspomniałem, Mantle jest interfejsem niskopoziomowym, a wadą takowych jest brak całkowitej kompatybilności z innymi rozwiązaniami. Oznacza to, że interfejsy takie nie powinny być stosowane w komputerach osobistych, które muszą zachować kompatybilność wsteczną z wieloma innymi maszynami. Inaczej to wygląda w przypadku konsol do gier, które są sprzętami zamkniętymi, a coś takiego jak kompatybilność wsteczna tak naprawdę w nich nie istnieje.
Jednak jak już wiele razy wspominałem na łamach Spider's Web, premiera Playstation 4 oraz Xboksa One sprawi, że komputery osobiste i konsole zbliżą się do siebie bardziej niż kiedykolwiek, a zastosowanie niskopoziomowego API będzie miało sens. Stanie się tak, gdyż we wszystkich konsolach nowej generacji zostaną użyte podzespoły AMD. W przypadku Nintendo Wii U jest to karta graficzna, zaś w Xbox One oraz Playstation 4 ośmiordzeniowy procesor Jaguar oraz odpowiedniki kart AMD Radeon HD 7000 ze średniej półki cenowej. Wśród wymienionych sprzętów tylko twór Nintendo nie ma architektury Graphic Core Next.
Dzięki temu AMD stanie się najważniejszą lub przynajmniej jedną z najważniejszych firm na rynku growym i będzie chciała tą pozycję jeszcze bardziej pogłębić. Mantle jest idealnym, stworzonym właśnie do tego celu narzędziem. AMD specjalnie zrobiło z Mantle otwarty standard, by inne firmy też mogły go wykorzystać, wiedząc przy tym, że to i tak jRadeony będą najlepiej przystosowane do nowego API i niemal niezależnie od technikaliów konkurencji będą osiągać wyższą wydajność. Otwartość i uniwersalność Mantle może sprawić, że wielu programistów zechce korzystać właśnie z tego standardu podczas portowania gier z konsol na komputery. To z kolei może bezpośrednio przełożyć się nie tylko na łatwość programowania, ale też na większą wydajność Radeonów w porównaniu do konkurencji, która nie będzie tak dobrze przystosowana do nowego API.
Właśnie to może być powodem stosunkowo agresywnych komunikatów Nvidii. Jednym z nich jest wspomnienie o tym, że konsole do gier nigdy nie będą szybsze od komputerów. Informacja ta to oczywista oczywistość. Tak jak to, że ludzie chcą grać na konsolach z powodu wygody, a nie wydajności zastosowanych w nich podzespołów i jakości grafiki. Nvidia tracąca swoją pozycję na rynku mobilnym boi się, że konsole do gier i tworzenie gier optymalizowanych pod produkty AMD będzie znacznym ciosem w jej drugi biznes - karty graficzne GeForce. I ja się im absolutnie nie dziwię, na ich miejscu też bym się bał.
Kto pierwszy się ugnie?
Oczywiście teraz karty graficzne też tracą nieco mocy przez API. W końcu API wysokopoziomowe, takie jak DirectX, powoduje spory narzut sterownika graficznego na procesor. Jednak obecnie problem ten dotyka wszystkich platform w równym stopniu. W przypadku Mantle będą cierpieć przede wszystkim urządzenia z kartami graficznymi Intela oraz Nvidii. Dlatego nie jest powiedziane, czy Intel i Nvidia będą chciały korzystać z Mantle . Jeśli nie, deweloperzy nadal będą na pecetach wykorzystywać DirectX, zysk z nowego API będzie bliski zeru, a portowanie gier skomplikowane. W końcu żadna firma nie zdecyduje się wydać gry, która będzie działać tylko na kartach AMD, to byłoby samobójstwo. Możliwe będzie tylko tworzenie (pod naciskiem AMD) gier w dwóch wersjach - Mantle i DirectX, jednak mało kto będzie chciał wykonywać tę samą pracę dwa razy, nawet za cenę wykorzystania pełni wydajności Radeonów. Wówczas cały plan AMD na rynku komputerowym będzie mógł wziąć w łeb. A tego byśmy nie chcieli, gdyż łatwiejsze portowanie gier na to mniejszy koszt tego procesu, a to bezpośrednio przekłada się na łatwiejsze zwrócenie się gry twórcom. Dzięki temu o wiele słabszy stanie się argument o tym, że piractwo zjada ich zyski i nie opłaca się tworzyć gier na komputery osobiste.
Czy Mantle stanie się standardem? Tak naprawdę nie wiadomo. Za rozwiązaniem AMD przemawia łatwość portowania gier i możliwość uzyskania pełni wydajności na Radeonach i konsolach nowej generacji, z kolei za racją Intela i Nvidii stoi pozycja Intela, którego układy graficzne stanowią ponad połowę rynku. By lepiej zobrazować, ile GPU wprowadza Intel na rynek, warto posłużyć się ciekawym porównaniem. Otóż w trzy miesiące Intel sprzedaje więcej GPU (zintegrowanych z procesorami, innych nie ma w ofercie) niż na rynku pojawia się konsol w ciągu życia całej generacji. W tym wypadku nie jest ważne, że większość użytkowników najtańszych komputerów nie chce grać. Uważam, że gdyby dać im taką możliwość, zapewne część z nich by ją wykorzystała. A nawet mała część z tak wielkiej grupy osób to ogromna suma wpływająca do kieszeni deweloperów. Nie będą to oczywiście namiętnie grające w Crysisa, a osoby, które od czasu do czasu odpalą SimCity.
Dlatego osobiście podejrzewam, że najładniejsze graficznie tytuły, wyciskające ostatnie soki ze sprzętu i powstające we współpracy z AMD, będą wykorzystywać Mantle i lepiej działać na Radeonach, z kolei najpopularniejsze i najbrzydsze gry typu FIFA, Diablo itp. będą nadal wspierać przede wszystkim DirectXa oraz OpenGL. Wpływ na popularność danego API może też mieć nadchodzący SteamOS, który wspiera OpenGL, ale przy potencjale AMD i Intela jest to płotka, którą nie należy się nawet przejmować. Zresztą, jeśli AMD dobrze to rozegra, Mantle będzie mogło stać się API używanym też w SteamOS. W końcu łatwiejsze konwersje gier są bardzo na rękę Valve, które jak na razie dysponuje platformą, na której działa tylko 3000 tytułów, i to zapewne nie pierwszej świeżości.
Gdzie zobaczymy Mantle?
Na razie wiemy o jednej grze, która wykorzysta nowe API. Będzie to Battlefield 4, którego testy beta rozpoczęły się właśnie dziś. Gra ta pojawi się w wersji wykorzystującej Mantle, jak też takiej działającej z DirectX. Sytuacja taka pokazuje, że nisko- i wysokopoziomowe API nie mogą ze sobą współpracować i można między nimi wybierać, ale nie da się połączyć. Tym bardziej bardzo ważnym głosem dla branży jest deklaracja DICE, studia które obok Cryteka tworzy najpiękniejsze strzelaniny. Przedstawiciele DICE powiedzieli bowiem, że Mantle stanie się integralnym elementem silnika Frostbite 3. Chyba nie da się dobitniej pokazać, że widzi się potencjał w danym rozwiązaniu. Przynajmniej ja tak sądzę.
Kolejne tytuły wykorzystujące Mantle zapewne zostaną zaprezentowane w listopadzie. Wówczas odbędą się dwa bardzo ważne dla AMD wydarzenia. Pierwsze to premiera konsol do gier nowej generacji – Playstation 4 oraz Xboksa One. Druga to konferencja poświęcona układom APU, czyli Fusion Developer Summit. Wówczas dowiemy się jeszcze więcej na temat tego, przez kogo zostanie wykorzystane Mantle i czy ma szansę stać się popularniejsze od DirectXa.