AMD chce pożegnać API. Microsoftu i każde inne.
Twórcy gier nie chcą DirectX, twierdzi AMD
Microsoft DirectX od wielu, wielu lat stanowi praktycznie wyłączną platformę, o która opierają się wszystkie gry dla Windows. Mimo wielu kontrowersji i prób wylansowania OpenGL.
|
Nawet największy obrońca OpenGL, czyli studio id Software, w końcu skapitulował i przerzucił się na platformę Microsoftu. Dziś DirectX to potęga, a konkurencji ciężko zaistnieć – nie licząc kilku projektów, wszystkie gry na Windows porozumiewają się ze sprzętem poprzez owo API Microsoftu. Zdaniem Richarda Huddy’ego, programiści jednak mają go dość. Nie tylko DirectX-a, ale i jakiegokolwiek API. Huddy zauważa, że współczesne karty graficzne są wielokrotnie wydajniejsze od konsol do gier. Jednak gry na Windows wyglądają niewiele lepiej od konsolowych odpowiedników i od niedawna. Huddy uważa, że programiści chcieliby niskopoziomowego, bezpośredniego dostępu do sprzętu. Dzięki temu mogliby wycisnąć ostatnie soki z kart graficznych i tworzyć olśniewająco piękne gry. Nie możemy tu się powstrzymać od komentarza. Huddy ma rację: współczesne komputery są o wiele wydajniejsze, niż konsole. Gry jednak wyglądają niewiele lepiej, i to dopiero od niedawna, gdyż komputer, poza grą, uruchamia całą masę oprogramowania i usług i na to jest marnowane cała masa mocy obliczeniowej. To raz. Dwa: gry tworzone są zazwyczaj na wiele platform. Opracowywanie osobnej, dużo lepiej wyglądającej wersji dla Windows jest mało możliwe z finansowego punktu widzenia. Nowe gry wyglądają czasem lepiej za pomocą prostych trików: włączenie wygładzania krawędzi, zwiększenie dystansu od kamery, po którym usuwane są szczegóły, i tak dalej. I trzy: faktycznie, ominięcie DirectX i dobranie się bezpośrednio do karty graficznej daje bardzo wiele dodatkowej mocy obliczeniowej do wykorzystania. Oznacza to jednak, że gry musiałyby być pisane osobno dla każdej karty graficznej, dźwiękowej, i tak dalej. A czy to właśnie nie dlatego, że programiści muszą nawet teraz, mimo DirectX-a, pamiętać o tysiącach możliwych kombinacji sprzętu i oprogramowania, których nie ma na konsolach gry wyglądają gorzej? Że nie wspomnimy o koszcie opracowania takiej gry. W jednym się jednak z Huddy’m zgadzamy: nie podoba nam się dominacja DirectX-a. Konkurencja się przydaje. Zawsze. Może czas na zastrzyk finansowy dla OpenGL-a? |


KUP NAJTANIEJ
I uwaga do obrazka - Rage jest pierwszą grą ID Soft pod DX.
Programistą po prostu nie chce się grzebać głęboko w kodzie, nie chce się dostosowywać algorytmu do karty graficznej, wolą iść na łatwizne i programować w wysokopoziomowym API... To i dobrze i źle, z jednej strony mocno niewykorzystują sprzętu z drugiej strony mają pewność że zadziała na każdej karcie...
Inna sprawa, że gry powstają kilka lat, wychodzą gnioty, wiele milionów przeznacza się na promocję a ułamek tej sumy na porządną optymalizację kodu... To jest wkrzające.
A można źródło bo z tego co mi wiadomo, to id Tech 5 na którym opiera się gra Rage jest silnikiem wieloplatformowym. No bo jak wytłumaczyć, że gra pojawi się na PC, Xbox 360 i PS3???
Wiki to potwierdza:
id Tech 5
- Silnik gier
- Producent id Software
- Platforma sprzętowa: Mac OS X, Microsoft Windows, Linux, PlayStation 3, Xbox 360.
Sami sprawdźcie.
"Wywiad z Johnem Carmackiem potwierdził, że silnik ten (id tech 5), podobnie jak jego poprzednicy, zostanie ostatecznie wydany jako open source. Przejście na open source będzie jednak możliwe dopiero po kilku latach od jego pierwszego wydania"
Silnik, który wykorzystuje DirectX wydany na Licencji OS? Coś mi tu nie pasuje!!!
Przypomniałem sobie jeszcze, że Rage odpalili, działa, dostępny jest na iPhone (niepotrzebne skreślić).
Jeśłi się mylę, to mnie poprawcie.
Tak, zwłaszcza systemowe sobie wyłącz...
chyba do gier
Świetne gry na konsole są zaledwie nijakie dla właścicieli pecetów.
W nagłówku.
1. Programiści NIE CHCĄ pisać niskopoziomowo, chyba że muszą
2. Pisanie niskpoziomowe jest zazwyczaj bardzo czasochlonne.
3. Jesli możliwosci sprzetu są udostepnione przez dobrze przemyslany intefejs wysokopoziomowy, to da sie uzyskac wysoką wydajnosc.
5. DirectX jako interfejs API jest niezly, ale ma tę wadę, że jest tylko na Windows.
Warto też zauważyć, że kwestia wyboru API 3D jest dzisiaj mało istotna - większość złożonych operacji jest wykonywana w shaderach więc to możliwości krzemu na karcie oraz jakość sterownika decydują o tym, co można z karty wycisnąć. Api? W dobrze napisanym silniku zmiana jednego na drugi to często kwestia kilku tygodni.
I jeszcze ostatnie zdanie - wbijcie sobie do głów że dobry program to taki który ma przejrzysty i czytelny kod, a nie taki co jest 5% szybszy - dlatego że programu nie pisze się raz i koniec, tylko z czasem ciągle się go poprawia i po 100 poprawkach zapewniam Was że ten który jest napisany przejrzyście na końcu będzie działał o wiele szybciej a przede wszystkim stabilniej od tego co na początku był trochę szybszy.
Wszystko co napisałeś to racja ale dotyczy raczej programowania aplikacji a nie silników graficznych gier. Wszyscy rozsądni programiści od dawna używają wysokopoziomowych języków i bibliotek żeby programy były pisane szybciej, były stabilniejsze i... wolniejsze, bardziej zasobożerne. Te dwa ostatnie przypadki teraz nie są żadnym problemem.
W przypadku gier, gdzie silnik graficzny (bo nie chodzi o logikę, okienka, etc...) to tak naprawdę programowanie bardzo wyspecjalizowanej i złożonej jednostki graficznej sprawy wyglądają zupełnie inaczej. Tutaj działając blisko sprzętu można uzyskać potężne korzyści ale za cenę znacznie większego wysiłku i mniejszej kompatybilności - inny kod pod dla obu producentów kart i różnych typów kart.
Z drugiej strony silników graficznych do gier jest tylko kilka. To nie jest tak, że do każdej gry jest nowy silnik, są firmy wyspecjalizowane w produkcji takiego kodu. Więc może da się jednak zoptymalizować lepiej gry dla PC żeby wyglądały jeszcze lepiej....