Przejdź na skróty do treści. | Przejdź do nawigacji

Zapamiętaj mnie Przypomnij hasło Rejestracja
Wersja mobilna
Newsletter
Zgłoś uwagę
RSS

News

rozwiń
Strona główna News Oprogramowanie Programowanie Twórcy gier nie chcą DirectX, twierdzi AMD

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?

Oferty ze sklepu CHIP
Chieftec (GPS-350A) 350W

Cena: 159.90 zł

Chieftec (GPS-450A) 450W

Cena: 219.00 zł

Gość IP: 109.95.202.* 2011.03.21 14:12
Programiści chcą się dobierać do kart niskopoziomowo. Czyżby DOS wracał do łask?
Gość IP: 82.143.147.* 2011.03.21 14:15
Pytanie ile traci się wydajności przez korzystanie z pośrednictwa DX lub OGL. 20%? 50%?
I uwaga do obrazka - Rage jest pierwszą grą ID Soft pod DX.
Gość IP: 149.156.114.* 2011.03.21 14:41
Nie 20 czy 50% tylko 10-20 razy! Podczas grania można wyłączyć wszystkie inne niezbędne procesy więc to nie jest powód...

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.
Gość IP: 83.18.90.* 2011.03.21 14:47
"Nawet największy obrońca OpenGL, czyli studio id Software, w końcu skapitulował i przerzucił się na platformę Microsoftu."

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.
Gość IP: 83.18.90.* 2011.03.21 14:51
Wiki twierdzi też, że

"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!!!
Gość IP: 83.18.90.* 2011.03.21 15:20
"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."

Przypomniałem sobie jeszcze, że Rage odpalili, działa, dostępny jest na iPhone (niepotrzebne skreślić).

Jeśłi się mylę, to mnie poprawcie.
mlody969
mlody969 2011.03.21 16:53
"Nie 20 czy 50% tylko 10-20 razy! Podczas grania można wyłączyć wszystkie inne niezbędne procesy więc to nie jest powód..."

Tak, zwłaszcza systemowe sobie wyłącz...
antic
antic 2011.03.21 16:54
Przyjmijmy na chwilkę, że to nie brednie i AMD wie co mówi. Jeśli programiści nie chcą API i wolą rzeźbić po rejestrach jak to bywało na ST/Amidze, to i system operacyjny im nie potrzebny. Po co marnować zasoby. Po prostu trzeba pisać na x86-NV-ATI, a że zadziała na promilu blaszaków to pewnie żaden problem. Przynajmniej dla AMD.
piotrasta
piotrasta 2011.03.21 17:07
od konsol fo gier
chyba do gier
Gość IP: 79.184.66.* 2011.03.21 17:23
Nie od dziś wiadomo, że konsole zaniżają poziom gier.
Świetne gry na konsole są zaledwie nijakie dla właścicieli pecetów.

Gość IP: 94.231.54.* 2011.03.21 17:50
a gdzie zrodlo? widzialem ten artykul na geeks3d
mgajewski
mgajewski 2011.03.21 18:10
@Gość IP:94.231.54.* 2011.03.21 17:50:
W nagłówku.
Gość IP: 87.206.44.* 2011.03.21 21:08
Piszę jako programista z wieloletnim stażem. Kilka uwag:
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.
Gość IP: 83.1.74.* 2011.03.21 21:38
Nie jestem maniakalnym graczem, ale zdarzyło mi się parę gierek przetupać i moje wrażenia są takie: gry bez pośrednictwa directa ładniej wyglądają i płynniej zasuwają. Jeśli gra daje wybór między directx i opengl - wybieram hal lub opengl...
Gość IP: 89.79.78.* 2011.03.21 23:03
Nie wiem, skąd macie informacje o tym, że Id Software porzucił OpenGL, ale chyba zatrzymaliście się na jakiejś wypowiedzi Carmaka sprzed kilku lat. Wtedy faktycznie OpenGL kulał pod względem technologicznym. Na dzień dzisiejszy jedyną przewagą DirectX-a jest kampania reklamowa Microsoftu - a co za nią idzie odgórne decyzje o użyciu tego API podczas produkcji gry. Technicznie obydwa API są na tym samym poziomie. Sam Carmack musi używać DirectX-a gdyż Microsoft na XBox-ie nie zaimplementował OpenGL-a (no taki kolejny mały trick monopolistyczny). Id Tech 5 radzi sobie świetnie zarówno z OpenGL-em jak i z DirectX-em.

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.
Gość IP: 217.173.193.* 2011.03.22 08:58
Każdy kto napisał sam choć kilka programów doskonale wie że programiści NIE CHCĄ pisać niskopoziomowo. Bo po jakiego grzyba po raz miliardowy odkrywać Amerykę? Co więcej pisanie niskopoziomowo wcale nie gwarantuje że kod będzie szybszy - np. jak ktoś pisze pod C i przerzuci się na asemblera to często jego programy pod asemblera działają WOLNIEJ niż pod C. A to z tej przyczyny że facet pisze sporadycznie pod ams - nie zna sztuczek, a twórcy kompilatorów C i innych języków zjedli zęby na asemblerze i wiedzą jak coś zrobić najszybciej. Jeszcze inny przykład - piszę w jakimś języku niskopoziomowym, chce posortować tablicę. Mam do wyboru: albo kupię dll która będzie sortować tablice (trzeba wydać pieniądze, w najlepszym razie szukać na jakiej licencji jest ta dll itd.) lub napiszę sobie sortowanie sam, no dobra zanim sprawdzę na jakiej licencji to napiszę sam. I piszę sortowanie bąbelkowe bo jest najłatwiejsze do napisania. Tym czasem używając .net'a piszę tylko tablica.Sort() - i koniec - zajęło mi to 10 sekund a nie godzinę i używam najszybszej metody sortowania znanej ludzkości zamiast metody bąbelkowej.
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.
Gość IP: 83.175.178.* 2011.03.22 09:34
@Gość IP:217.173.193.*
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....
Gość IP: 83.175.178.* 2011.03.22 09:34
Komentarz został usunięty ze względu na naruszenie zasad serwisu.
Gość IP: 77.255.238.* 2011.03.22 09:36
wsumie to nie ma wiele gier na PC sa na windows a napis na grach PC to klamstwo i powinnio byc zabronione, wydam 100z na gre a w domu mam linuxa i co to juz nie PC?? dx powinien byc wolny lub inny podobny stwozony na PC.
Gość IP: 83.108.76.* 2011.03.22 09:55
Co to za bzdury?!?! Ktoś chce nam wmówić, że twórcy gier chcą zagłębiać się w niuanse technologiczne poszczególnych kart graficznych i na pewno chcą do każdej gry dołączać oddzielną płytkę z odpowiednimi sterownikami pod wszystkie popularne systemy (z danej rodziny, np. Windows). Żeby było więcej smaczku szybko okaże się, że jedne firmy lepiej optymalizują sterowniki od innych, a co za tym idzie, w drodze umów patentowych będą świadczyć sobie wzajemnie usługi przekazywania i udostępniania rozwiązań... Szybko okaże się, że koszty wydania gry znacznie wzrosną itd. Więc proponuję, żeby twórcy gier zajęli się grami, a twórcy systemów API. Przynajmniej jest porządek. Już bardziej przemawia do mnie swego rodzaju tryb GAME w systemie, który okroi do minimum (np. ustalone przez producenta gry) uruchomione usługi i programy w tle.
AUTOR: maciej gajewski
DODANO: 21.03.2011
Tagi producenckie: amd
ŹRÓDŁO: bit-tech.net
LICZBA WYŚWIETLEŃ: 5169

CENEO KUP NAJTANIEJ
Poradnik Wędkarza (Gra PC) Poradnik Wędkarza (Gra PC)
Dostępny w 7 sklepach
Sprawdź CENY tego produktu
TomTom XXL IQ Europa Traffic (1ET0.024.00) TomTom XXL IQ Europa Traffic (1ET0.024.00)
Dostępny w 14 sklepach
Sprawdź CENY tego produktu
GIGABYTE GA-MA770T-UD3 GIGABYTE GA-MA770T-UD3
Dostępny w 5 sklepach
Sprawdź CENY tego produktu
Allied Telesis AT-MC101XL-20 Allied Telesis AT-MC101XL-20
Dostępny w 5 sklepach
Sprawdź CENY tego produktu
Sonda
Wyraź swoją opinię