Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 67 reacties
Bron: The Inquirer

Microsoft gaat volgens The Inquirer proberen om een einde te maken aan de kloof tussen verschillende technieken om natuurkundige berekeningen te versnellen, door een universele API voor physics op te nemen in DirectX. Dit zou betekenen dat ontwikkelaars van spellen maar n keer code hoeven te schrijven om alle (aan de standaard meewerkende) engines te kunnen benutten. De code kan dus op verschillende manieren uitgevoerd worden, afhankelijk van de aanwezige hardware en de instellingen van het systeem. De ontwikkelaar hoeft op die manier niet meer expliciet te kiezen voor de PhysX-kaart van Ageia, de GPU-engines van Havok/nVidia en ATi of een pure softwareoplossing. Als alles goed gaat zal eindgebruikers en spellenmakers zo een hoop hoofdbrekens worden bespaard. The Inquirer speculeert dat er tijdens de spellenbeurs E3 voor het eerst officieel nieuws naar buiten zal komen over de API.

Asus Ageia PhysX PPU

Lees meer over

Moderatie-faq Wijzig weergave

Reacties (67)

Wat een kortzichtige reacties hier weer. Oh wat is MS toch slecht met z'n "DirectX monopolie". Waar even niet aan gedacht wordt is dat PC gaming maar een enorm klein deel van de totale game-markt is, er worden veel en veel meer games voor de consoles gemaakt en daar zit je ook met allemaal verschillende hardware en API's. Aangezien veel games voor zowel PC als console ontwikkeld wordt is het kiezen van 'DirectPhysics' voor zo'n game niet echt een optie; physics is namelijk een enorm belangrijk aspect van de gameplay (itt graphics), en dus wil je dat objecten op verschillende platformen op dezelfde manier gedragen. Je gaat geen racegame maken waarbij de feeling van een auto op de PS2 compleet anders is dan die op een PC.

Er zijn al zat proprietary physics APIs, waarvan Havok een van de grootsten is. Die zijn weldegelijk crossplatform. En nee, daarmee bedoel ik niet dat het ook op linux en mac werkt, maar dat het ook op de PS2, Xbox, Xbox360 en PS3 werkt / zal gaan werken. De echte crossplatform games kiezen dus een dergelijke API en gaan niet voor DirectPhysics, en dat zijn er nog altijd een stuk meer dan die paar PC titles die ook op linux uit zouden moeten komen.

Ik vind het iig een goede ontwikkeling, dit zal waarschijnlijk leiden naar eenzijdigere hardware, en daar profiteren zowel gamers als gamedevelopers van.
Ik denk dat voor zich spreekt dat een physics-API van DirectX ook door de Xbox 360 gebruikt zal kunnen worden. Microsoft is sowieso bezig om gelijktijdig ontwikkelen voor pc en Xbox makkelijk te maken (XNA) dus het zou vreemd zijn als ze daar ineens mee zouden breken.

Met Nintendo uitgeschakeld op het gebied van grafisch geweld (en het gebrek aan geavanceerde controllers voor de andere systemen) is de Playstation 3 de enige andere serieuze optie voor crossplatform ontwikkelaars. Microsoft zal zelf natuurlijk niets doen om Sony te helpen, maar het originele bericht lijkt wel te suggereren dat in ieder geval nVidia aan boord is, en we weten allemaal dat nVidia zowel met Havok als met Sony samenwerkt. Er zou dus best wel eens een brug geslagen kunnen om de porteerbaarheid zo goed mogelijk te houden.
Je realiseert je niet dat physics in DirectX gewoon just another API is. Het doel is niet om hardware aan te sturen, het doel is om berekeningen uit te voeren waarvan de resultaten weer gebruikt kan worden. Hierdoor ligt het echt op een compleet ander niveau dan iets als Direct3D of DirectSound, n zoals ik in mijn vorige post al zei heeft de werking van je physics nogal invloed op de gameplay.

Waar ontwikkelaars voor een 3D API gewoon kunnen kiezen wat het platform biedt, en waarbij de hardware zelfs ook min of meer hetzelfde paradigima aanhoudt (namelijk het tekenen van triangles), maakt het niet uit dat een API op het ene platform anders werkt dan op het andere. Het netto resultaat zal min of meer gelijk zijn, en bovendien zijn eventuele discrepanties niet zo heel belangrijk - het is slechts visueel en benvloed de gameplay geenszins.

Bij physics ligt dat nogal anders. Je wilt niet dat je auto op de PC als een zeepkist aanvoelt terwijl het op een PS3 een Lamborghini is, en dus is de keuze voor de API voor cross-platform games zeer beperkt: je wil namelijk een API die op alle platformen hetzelfde resultaat geeft. En voor physics engines is dat nogal een lastig concept, er zijn talloze numerical solvers waaruit je kunt kiezen om een probleem op te lossen, die niet allemaal eenzelfde resultaat opleveren.

Ook heeft het grafisch geweld van een platform er weinig mee te maken, dus waarom Nintendo in dit geval buiten spel zal staan is me onduidelijk. Of wil je beweren dat een Revolution game nooit een physics engine nodig zal hebben?

En sure, natuurlijk komt het ook op de X360, maar denk je dat de gamedevelopers die een X360 titel aan het bouwen zijn dat ook porten naar linux? Dat aantal zal heel gering zijn, en dus zijn de meeste reacties hier (waar mijn post dus in eerste instantie op inging) meer bedoelt om MS te bashen dan dat ze echt een punt hebben.
Voor Direct3D 10 ligt in ieder geval heel streng vast wat er met iedere call moet gebeuren, dus het is niet (meer) zo dat de videokaart/driver alles mag doen wat hij maar wil. Ik kan me dus goed voorstellen dat er met physics iets soortgelijks zal gebeuren, dus dat het resultaat hetzelfde moet zijn ongeacht de achterliggende engine/accelerator. Dat verschillende algoritmes net iets andere resultaten kunnen geven kan ik me voorstellen, maar in essentie proberen ze toch allemaal de natuur te benaderen (al dan niet met 'getweakte' constantes) en daarmee ligt ook het beoogde resultaat vast. Of zie ik nu iets over het hoofd?
Ook heeft het grafisch geweld van een platform er weinig mee te maken, dus waarom Nintendo in dit geval buiten spel zal staan is me onduidelijk. Of wil je beweren dat een Revolution game nooit een physics engine nodig zal hebben?
Nee, maar wel dat kans dat een ontwikkelaar een spel n voor de pc, n voor Xbox/Playstation n voor de Revolution uit wil brengen klein is. Nintendo heeft gekozen om een andere weg in te slaan qua soort spellen, waardoor Revolution minder belangrijk is als je het over crossplatform hebt.
Of zie ik nu iets over het hoofd?
Ja, je hebt het nu over een enkele physics API in DirectX met verschillende achterliggende implementaties, niet over verschillende APIs in het algemeen.

DirectPhysics (zo noem ik het maar even) zul je niet zien op PS2, PS3, de GameCube en de Revolution (en wellicht de Xbox). Als je dus een game maakt dat k op een van deze platforms zal moeten draaien is het gebruik van DirectPhysics op de PC of X360 port van je game zo goed als uitgesloten.
Nee, maar wel dat kans dat een ontwikkelaar een spel n voor de pc, n voor Xbox/Playstation n voor de Revolution uit wil brengen klein is.
Ik denk dat dat niet waar is, iig voor de PS2 en ook enigszins voor de xbox is het de bedoeling dat ze nog even meegaan na de introductie van hun opvolger, en er worden dus ook nog steeds games voor gemaakt. Nou doen wij ze allemaal en de PS2, Xbox en Gamecube zijn voorlopig nog niet afgeschreven, kan ik je melden :). En dat terwijl de PC en X360 kant al wel volop van next-gen features gebruik maken.

Je hebt idd een punt dat je op de Revolution wel heel ander soort spellen gaat zien, maar ik denk dat zeker in het begin nog de 'traditionele' games naar de Revolution geport gaan worden. Dit zie je bijvoorbeeld ook op de DS.
eigenlijk heeft de PC even veel markt aandeel als de Xbox en de PS2. (op de PC word alleen wat minder verdiend omdat de support kosten hoger zijn)

verder werkt de xbox360 ook met de Direct X 10 api, en daarom zulle alle games die werken op de xbox360 ook heel makelijk naar windows kunnen worden geport
voornamelijk omdat de regels in direct X 10 FLINK zijn aangescherpt. hierdoor hoeven ontwikkelaars in theorie altans geen rekening meer te houden met verschillende hardware, als de hardware gemaakt is voor Direct X 10 (of dat de drivers er iniedergeval mee overweg kunnen) zal elk spel er probleemloos op moeten draaien.
(hopenlijk brengt dat ook de support kosten voor de PC weer naar beneden zodat voor de PC ontwikkeling weer interesanter word)
Heh, luister, ik ben momenteel de 3d engine voor onze upcoming games op de Xbox360 aan het implementeren (ter info, we hebben net Tomb Raider: Legend afgerond), dus ga er maar even vanuit dat ik weet waarover ik praat.

First of all, de X360 ondersteunt geen DirectX10 maar Direct3D9. Van DirectX is dus alleen het graphics gedeelte aanwezig, en dat is min of meer versie 9. Min of meer, want het is niet helemaal hetzelfde, en als je echt efficient wil renderen kun je op veel plekken de Direct3D API passeren en directer op de hardware werken.

Een Direct3D9 engine werkt niet zomaar op een X360, daarvoor zullen eerst nog een hoop aanpassingen gemaakt worden. Zo is de fixed function pipeline compleet niet aanwezig, en zul je het moeten doen met de 10 MB aan EDRAM waar je framebuffer in moet. HDTV rendering met FSAA gaat daar niet inpassen, dus je zult je scene moeten tilen (gelukkig hebben ze daar een feature genaamd predicated tiling voor). Daarnaast zijn de shaders meer lowlevel (microcode ipv assembly) en is daar dus ook nog het een en ander uit te persen.

En dit alles nog even naast het feit dat een PowerPC geen x86 is. Het ondersteunt geen OOE en serialisatie tussen ALU, FPU en VU zorgt voor enorme stalls. Om je code efficienter te maken moet dus het een en ander herschreven worden (minder early-outs, meer berekenen en aan het eind pas checken of je die berekening nodig had).

Leuk dat de 'hobbyist' z'n code enigszins kan porten tussen PC en X360, en dit is ook wel handig voor prototyping (hoewel je dat net zo goed op 1 platform kunt doen), maar voor een serieuze game zul je nog heel erg veel tijd moeten spenderen om platform-specifieke optimalisaties toe te passen.
Kijk dit vind ik echt een goede ontwikkeling!
Dit maakt het voor gamesproducenten ook makkelijker en eenvoudiger om te kiezen voor physics.

Ik hoop wel dat het een heel duidelijk en open API word zodat eventueel het op andere platformen te ontwikkelen is
Dat denk ik niet omdat het van microsoft is en directX is.
Daarom hoop ik dat er bij opengl(dat wel open en multiplatform is) ook zoiets gemaakt word
Dat denk ik niet omdat het van microsoft is en directX is.
Je kunt er tegen ageren dat het van MS is, maar standaardisatie op dit gebied kan nooit slecht zijn voor de consument.
Ik denk dat een standaard MS-API verre preferabel is boven vele verschillende API's van Ageia, ATi, nVidia, Havok en wie weet welke toekomstige physics-producent... deze situatie bestond indertijd ook in graphics/3D-land, met verschillende API's van 3DFX, NEC (PowerVR), MS (DX), OGL etc. waardoor producenten meerdere paden moesten proggen of anders slechts ondersteuning konden bieden aan 1 API (met als gevolg veel incompatible games).

Uiteraard zou een open standaard handiger zijn, maar gezien de huidige dominantie van MS op de desktopmarkt denk ik dat zij de meeste kans hebben om eens standaard af te dwingen. Met wrappers/emulators kan deze vervolgens weer bruikbaar gemaakt worden onder Linux, zoals nu ook met DirectX (is) gebeurd...

@BlauweKip hieronder:
Je noemt zelf Cedega/Wine al. Als dit serieus verder ontwikkeld wordt - wat wel mogelijk is onder een uitbreidende Linux markt - kan het wel degelijk een goed alternatief zijn, zeker als de precieze DirectX API calls beschikbaar komen.
het is onwenselijk dat microsoft hun monopolie weer gaat gebruiken om een onbruikbare "standaard" erdoor te drukken
Kun jij een alternatief bedrijf noemen dat voldoende invloed heeft op de computermarkt om bij een stel kibbelende en hun eigen engines/standaarden pushende physics-producenten een (redelijk) universele standaard te forceren?
Iedere door de (meeste) partijen geaccepteerde standaard is beter dan helemaal geen standaard! Als dat dan perse een MS standaard moet zijn omdat niemand anders dit kan afdwingen, then so be it. Daarna kijken we wel verder...
En de linux community doet er alles aan om Microsoft de standaarden te laten bepalen...

Waarom komt de linux community niet gewoon een keertje als eerste met een standaard?
Als ze PhysX, Havok, ATI en Nvidia daarin mee krijgen dan zou Microsoft geen andere keus hebben dan dat ook te gebruiken.

Maar de linux community doet niets, behalve moord en brand schreeuwen als Microsoft dan uiteindelijk wel een standaard gaat opstellen.
Het is heel simpel, Microsoft is de enige partij die iedereen aan de tafel kan krijgen om een standaard af te spreken.

Als we op OpenGL moeten wachten dan is er mischien over 5 jaar een keer een standarisatie.
Met wrappers/emulators kan deze vervolgens weer bruikbaar gemaakt worden onder Linux, zoals nu ook met DirectX (is) gebeurd...
Kun je ff een linkje geven naar die wrapper? (en nee, cedega/winedoet het voor sommige direct3d games misschien prima maar is zeker geen bruikbaar alternatief)

maw: het is onwenselijk dat microsoft hun monopolie weer gaat gebruiken om een onbruikbare "standaard" erdoor te drukken
Waarom komt de linux community niet gewoon een keertje als eerste met een standaard?
in de aanbieding: OpenGL, OpenAL, en nog wat dingen.

voor physix weet ik het eigelijk niet, maar dat is pas sinds kort echt een item aan het worden nu de eerste hardware matige apperatuur daarvoor op de markt komt.
standaardisatie mag dan wel niet slecht zijn voor de consument maar zolang er op deze manier developt word kan ik wel fluiten naar dit soort technieken omdat ik linux gebruik. En het is nog steeds zo dat Microsoft er alles aan doet om te voorkomen dat dingen onder linux kunnen werken. Daarom blijf ik het wel een slechte ontwikkeling vinden!
Het is heel simpel, Microsoft is de enige partij die iedereen aan de tafel kan krijgen om een standaard af te spreken.
Euh? Wat heb jij gedronken? Geef mij ook eens wat?

Nee, Microsoft is eerder van het type: dit is zoals wij vinden dat deze standaard hoort, en zit nu standaard in DirectX, kan ons niet schelen hoeveel moeite je er voor moet doen om daarmee te kunnen omgaan, we gaan het toch niet veranderen. (tenzij Microsoft Game Studios dat wil natuurlijk)

Nee, geef mij dan maar OpenGL, wat nog betere performance geeft ook. (niet onder windows, maar directx is eigelijk van oorsprong alleen een hack om game-developers direct met de hardware te kunnen laten kletsen, iets wat windows uit zichzelf niet toestaat, of moeilijk toestaat).

Ieder spel wat ik heb getest onder DirectX en Windows, en OpenGL onder Linux ( tribes2, soldier of fortune, unreal tournament <any version>), was de ervaring onder Linux altijd veel fijner. Met het nodige gespeel onder FreeBSD idem dito, maar dat is iets listiger aan de gang te krijgen.
Het monopolie van DirectX is idd erg slecht voor cross-OS gaming. Maar er zijn overigens al wel open source API's voor physics: http://www.ode.org/

Alleen lijkt het er op dat DirectX dan straks gebruik kan maken van hardware acceleratie, en ODE kan dat niet, als ik het goed heb.

Verder vraag ik mij af of ze zoiets eigenlijk wel in OpenGL zouden willen hebben. OpenGL staat voor Open Graphics Library, en het heeft zijn roots in Unix. De Unix filosofie is dat een programma een ding goed moet doen. OpenGL is een API voor graphics, niet specifiek voor game development. Als dat het wel was hadden ze API's zoals OpenAL en SDL waarschijnlijk al opgenomen in OpenGL. En OpenGL wordt niet alleen voor games gebruikt, ook bijvoorbeeld door 3D modelling software zoals Blender. Wat heb je dan in zo'n geval aan physics? Wie weet zal er wel een losse API bijkomen, OpenPhysics ofzo ;).
ODE - Open Dynamics Engine moet je echt in je Engine verwerken. Niet echt een API.

Er gaan plannen de ronde om de Quake3 met ODE te verbeteren.
Want mannetjes in q3 kunnen dan wel niet door muren heen vliegen als er een granaat tussen ze benen lag, ze liggen wel is half in een muur ofzo, of als een zwevende arabier in de lucht, met hun hoofd op 1 pixel ofzo, als een horizontale plank dus.

bv ut2004 weet ik van dat die wel een Dynamics Engine heeft. Als een speler met een harde knal gelanceerd wordt door weet ik wat dan hoor je vrij snel daarna ook een klap van tegen de muur, en eventueel het geluid omdat het lijk de trap af rolt of de diepte in tuimelt.
Daar zou ik niet op rekenen, ondanks dat de industrie zelf nog veel gebruikt maakt van OpenGL bv zal het wel beheerd worden door MS en zullen Linux en Mac besturingssystemen er wel geen gebruik van gaan maken.

Daarom kunnen ze ook beter een standaard ontwikkelen, dit is net als DX10 geen standaard en dat is het probleem vind ik, gamen op Linux begint met veel games die op beide OSen uitkomen aan populariteit te winnen al is het maar een klein beetje en zal het wel nooit een groot aandeel krijgen, toch zou het mooi zijn als ook deze mensen er gebruik van kunnen maken.
Tuurlijk, onder het mom dat het makkelijk is voor de ontwikkelaars proberen ze hiermee hetzelfde te doen als waar DirectX voor in het leven is geroepen, de concurrentie uitsluiten.

Op deze manier vallen games namelijk weer niet makkelijk te porten naar een ander OS en houd MS vast aan hun monopolie, voor velen zijn games de grote reden niet over te stappen naar een ander OS.

Ik heb hierdoor ook een hekel aan DirectX.
DirectX heeft niks te maken met de concurrentie uitsluiten. Dat OpenGL moeilijker wordt gevonden of kwalitatief minder, en dat dus ontwikkelaars daar voor kiezen, daar kan Microsoft weinig aan doen.

Het punt is gewoon dat DirectX met een vrij uniforme API beeld, geluid, input en netwerk kan aansturen, en bij OpenGL heb je weer een andere API voor geluid, wr een andere voor input, etc, etc. Dat vinden ontwikkelaars gewoon niet fijn, dus daarom kiezen ze voor DirectX.
Kwalitatief is OpenGL absoluut niet minder. Alles van id Software gebruikt OpenGL, ook Doom 3 en Quake 4 (binnenkort dus ook ET Quake Wars en Prey).

Het klopt dat een game naast OpenGL waarschijnlijk ook OpenAL en SDL (juist SDL wordt gezien als een soort cross platform DirectX). Dat zijn dus 3 API's, desondanks valt het wel mee met de moeilijkheidsgraad. Doom 3 en Quake 4 zijn ook eenvoudig en snel naar Linux geport, daar heeft id Software maar een ontwikkelaar voor in dienst.

En wat Microsoft te verwijten valt, DirectX is niet open source. Als het dat wel was zou het veel makkelijker zijn voor de devvers van WINE om een goede DirectX implementatie te designen voor Unix-like OS's en zouden gamers niet beperkt zijn tot Windows. Nu zorgt DirectX wel voor die vendor lock-in.

Verder is het maar de vraag of game devvers voor DirectX kiezen omdat het beter is, of omdat ze niet beter weten. Microsoft heeft veel geld voor marketing, de open API's niet. Misschien is het wel zo dat game devvers onverschillig zijn, er is maar een klein deel gamers dat een alternatief OS gebruikt (kip-ei probleem).
@F for Fragging:

Carmack heeft zelf al een keer aangegeven dat DirectX tegenwoordig OpenGL ingehaald heeft.

De enige reden om nog OpenGL te gebruiken is dat je spellen dan cross platform kan maken.

Dat is voor hem een doorslaggevende reden, maar anders zou bij hem nu ook DirectX de voorkeur hebben.
Volgens jouw redenatie moet iD hun spellen dan ook maar open source maken.

pssst, dat doen ze al...
Geef me dan even een linkje naar de source code van Doom3?
Quake 2 en 3 kun je hier vinden ;)
http://www.idsoftware.com/business/techdownloads/

Doom 3 nog niet, komt mischien nog wel :)
@ Tijger: Hun games worden na verloop van tijd ook Open Source.
Als de economische waarde nul komma nul is geworden geven ze de code vrij.
Maar zo werkt de definitie van Open Source toch echt niet.

m.a.w. de spellen van ID zijn closed source
uh...sinds wanneer valt het wie dan ook te verwijten dat hun product niet Open Source is?

Volgens jouw redenatie moet iD hun spellen dan ook maar open source maken.
Volgens jouw redenatie moet iD hun spellen dan ook maar open source maken.
pssst, dat doen ze al...
Dat is echt onzin. De meeste mensen zullen best tevreden zijn met windows en/of geen zin heb in al dat gedoe om een ander OS te nemen.
Het punt is dat de mensen die wel willen overstappen dat niet kunnen vanwege een gebrek aan games. Hoe bizar het ook mag klinken, natuurlijk zijn er ook mensen die wel tevreden zijn met Windows.
tja, er is eerder een andere reden waarom DirectX zo populair is: het is dan ook erg goed! Veel developers verkiezen juist DirectX omdat het veel aangenamer is ervoor te ontwikkelen.

Want als OpenGL zoveel meerwaarde zou bieden tov DirectX, dan zouden de meeste spelontwikkelaars wel OpenGL gebruiken. Niemand verplicht hen immers van DirectX-spellen te ontwikkelen. OpenGL werkt ook wel onder Windows hoor ;-).

Ben ik trouwens de enige die denkt dat hierdoor de PhysX-kaart nu plots een heel korte levensduur krijgt? Die zal uiteraard nog niet compatibel zijn met die DirectX. En als MS hetzelfde kan waarmaken voor de physics-DirectX als voor het grafisch gedeelte van DirectX, dan gaan developers massaal daarop overstappen en ga je mooi een DirectX-compatibele PhysX-kaart moeten gaan kopen.
Onzin.

Heb jij wel is geprogrameerd met DX? Aan je post te zien niet.

Ten eerste is DX een verzamel naam voor direct3D directInput etc etc. Oh ja denk je al.
Anyway, DX word vaak verkozen boven b.v. OpenGL omdat meeste game makers toch enkel voor de PC ontwikkelen, met name windows en dan is DX net zo makkelijk. (Ook zal MS hier zeker een dikke finger in de pap hebben, je moet met DX devven of anders!)

Dat het met openGL ook prima kan is goed te zien zoals eerder vermeld aan Doom3/Quake4 etc maar ook aan World of Warcraft. Eigenlijk kun je zeggen dat elke game die ook op de MAC draait (en of op linux) met OpenGL werkt.
OpenGL werkt zelfs voor velen fijner dan DX. DX is niet zo makkelijk/eenvoudig/rooskleurig als jij je dat als non-developer voorstelt. Het feit dat er voor b.v. WoW zowel een DX als een OpenGL versie is (wow.exe -opengl, mac pakt altijd opengl) geeft ook duidelijk aan dat het verschil niet so super groot is.

On topic:
Vind ik het nobel dat ze een uniforme API ontwikellen, maar schandaalig het weer closed binnen het DX gebeuren houden, DirectPhysics oid wat het leven voor Non-windows gamers weer moelijker maakt. Ik hoop ook van harte dat er met dit nieuwsbericht een organisatie het leven in word geroepen die dan ook hetzelfde genereerd in een open standaard/api, liefst gesponsord door een groot bedrijf (zoals SGI dat met openGL deed/doet)
?

Tjah, ik lees weinig nieuws in je post. Ik weet best wel hoe DirectX in elkaar zit. Ik ontken uiteraard niet dat wat jij vernoemt mogelijk is in OpenGL. Echter, je geeft dan weer geen chte reden waarom toch DirectX gebruikt wordt, aangezien OpenGL best ook wel op pc werkt. Het zou me best ook verwonderen dat Microsoft druk zou uitoefenen op andere game-ontwikkelaars dat ze DirectX meten gebruiken.

Het zou mij toch sterk verwonderen dat er steeds voor het ene wordt gekozen als het andere n beter n meer mogelijkheden (cross-platform) biedt.

Ik geef toe dat ik zelf nog geen DirectX-code geschreven heb. Het grafische gedeelte programmeren interesseert me meestal ook een pak minder dan de core van een programma schrijven. Mijn mening over DirectX vs OpenGL is dan ook gebaseerd op meningen van kennissen die wl grafisch coden.

Over Carmack zijn projecten in OpenGL vind je hierboven trouwens ook nog een opmerking dat hij zelf vindt dat OpenGL momenteel het niveau van DirectX niet haalt.

Ik vind jouw post dus ook meer gebash dan iets anders. Hoe kun je trouwens in godsnaam MS verwijten dat hun software closed-source is? Ontwikkel dan zelf iets beter dat open-source is h.
Toch heeft Microsoft wel een push factor op DX gebied.
Het zit in de 1e plaats standaard in Windows. Voor een beetje performance moet je nog even de officiele drivers van je GPU fabrikant er in mieteren, maar ook al doe je dat niet werkt het wel. Voor zover ik weet zit er geen OpenGL in Windows standaard.

En daarbij heeft Microsoft pas een hele mooie ontwikkel omgeving de deur uit gedaan waarmee je een spel tegelijk voor zowel xbox360 als PC kan schrijven.
Hardstikke mooi, echt waar, maar alles is wel DX dus kunnen we een native Linux port wel vergeten. En daar zit ik mee als Linux gebruiker. Maar het is wel aantrekkelijk voor devs omdat ze een spel voor 2 platforms tegelijk ontwikkelen. Maar de OpenGL, OpenAL, OpenSDL valt dus buiten de boot.


Daarnaast nog een opmerking over dat DirectX n hele mooie API zou zijn; typ in je uitvoeren of een DOS box is dxdiag en zie hoeveel onderdelen het zijn.
Direct3d, DirectDraw, DirectSound, DirectInput en DirectPlay.
Ik tel er 5 op de XP computer van me pa.
DirectX heeft ook een grafisch gedeelte, en toch zijn de grafische kaarten er nog steeds. Als DirectX nou gewoon dat soort kaarten ondersteunt is er toch niets aan de hand?
Grafische kaarten van tegenwoordig ondersteunen toch DirectX? Dus ik snap niet direct wat je bedoelt.....

Ik wil dan ook niet beweren dat er geen PhysX-kaarten meer gaan komen, wl dat er nieuwe gaan moeten komen die de DirectX-implementatie van physics ondersteunen. Wat dus zou betekenen dat nue een PhysX-kaart kopen een behoorlijke miskoop zou kunnen zijn.

Bij mijn weten is het trouwens nooit DirectX die zich aanpast aan oude hardware maar eerder nieuwe hardware die zich aanpast aan huidige DirectX. Wat ergens ook normaal is als je een standaard wil invoeren.

Ik herinner mij nog mijn Radeon DDR (eerste ATI Radeon). Die had reeds een vroege implementatie van pixel shaders nog voordat de DirectX-versie die shaders zou introduceren op de markt was. MS heeft toen op het einde hun specificatie van shaders veranderd waardoor de Radeon-shaders nu onbruikbaar zijn.
Nee, PhysX krijgt m.i. juist een betere kans. Je bent namelijk niet meer van de spelontwikkelaars afhankelijk voor ondersteuning van die kaart. Zij hoeven alleen maar de DX functies aan te roepen, en die zorgt voor de vertaling naar de instructies voor de kaart/driver.

Geen detectie of instellen van kaart meer nodig in de software, alles gaat vanuit DX. Wie herinnert zich nog de tijden dat je je GFX-kaart en je geluidskaart fijn mocht instellen in de software? Adlib of soundblaster etc. etc. tesamen met IRQ's en DMA's. Nu zal met de huidige stand van techniek dit niet meer zo'n groot probleem zijn aan de kant van de gebruiker, maar voor ontwikkelaars houdt het e.e.a. wel in dat ze verschillende paden zouden moeten implementeren in de software. (Alhoewel goede devkits hiervan ook wel weer een gedeelte van uit handen kunnen nemen, zal het veel meer testwerk en debugging kosten. Tevens zal er ook nog eens een grotere kostenpost zijn voor de ondersteuning terwijl men nu fijn naar de kaartleverancier en MS kan wijzen.

edit: typo
Dacht dat MS juist makelijk wilde poorten(ivm xbox360), en daarvoor ook een dev. tools voor heeft ontwikkeld. :?

en de nieuwe directx gaat juist beter werken met de PhysX-kaart staat in de post.
De code kan dus op verschillende manieren uitgevoerd worden, afhankelijk van de aanwezige hardware en de instellingen van het systeem. De ontwikkelaar hoeft op die manier niet meer expliciet te kiezen voor de PhysX-kaart van Ageia, de GPU-engines van Havok/nVidia en ATi of een pure softwareoplossing.
Misschien, en ik hoop dat dat eens gaat gebeuren, zou Apple een licentie op DirectX moeten nemen. Dan is de aanpassing van games richting het Mac-platform veel makkelijker. Bovendien verdient Microsoft dan wat geld aan licenties, wordt Apple wat voller aangezien als game-platform en komen er meer games op de Mac uit (en bovendien ook nog eens sneller). Just my 2 cents.
Alsjeblieft niet zeg, dan neemt de kans weer of dat game designers voor OpenGL of andere API gaan ontwerpen die ook op niet MS (en dan MS/Apple) systemen werkt want in Linux zal nooit zo een licentie komen want dan zou het niet meer gratis kunnen zijn.
eindelijk dan duurt het hopelijk geen 2 jaar voor er een game uitkomt die de nieuwste kaarten volledig kan benutten 8-)

zou het al in DX 10 komen?
zou het al in DX 10 komen?
Ik denk het niet, zoiets implementeren kost aardig wat werk, en aangezien ze Vista niet nog langer uit zullen willen stellen...
Word een beetje te kort dag denk ik. Misschien later bij een DX update, of pas bij DX 11.
Ik zou er op korte termijn niet op rekenen, volgens mij is dat artikel puur speculatie:
All the talk about physics accelerators from Ageia, Havok/NVidia and even ATI, has one thing in common, the same chaos as we had in the early 3D acceleration days. The thing that fixed that mess was MS stepping in with DirectX/Direct3D, and they appear to have done a damn good job sorting out that mess
Het is een logische redenatie en het zal in de toekomst wellicht ook gebeuren, maar ik heb hier op de D3D10 beta newsgroups nog niks over gezien. Bij MS lijken ze momenteel hun handen al aardig vol te hebben met de nieuwe graphics API.
The thing that fixed that mess was MS stepping in with DirectX/Direct3D, and they appear to have done a damn good job sorting out that mess
Dit klopt niet bepaald, en toch ook weer wel.

Onder dos en later windows was het inderdaad een enorme rotzooi, en windows had echt een unified API nodig waarmee de game-devers tegen de hardware konden kletsen. Maar DirectX was oorspronkelijk in het leven geroepen omdat game-devers direct tegen de 3D hardware wilden kletsen, en window stond dat nou net effe niet toe met window 95. Daar is DirectX onstaan, niet omdat Microsoft orde wilde scheppen in de chaos.

Onder andere OS'en echter, was er vaak genoeg al een API waarmee je kon praten als developer, onder Linux en MacOS was dat OpenGL, en tot op de dag van vandaag is OpenGL voor profesionele oplossingen de eerste keus. (die effecten voor hollywood worden echt niet met DirectX gerenderd, maar met OpenGL).
De ontwikkelaar hoeft op die manier niet meer expliciet te kiezen voor de PhysX-kaart van Ageia, de GPU-engines van Havok/nVidia en ATi of een pure softwareoplossing.
Dus wat is er dan anders dan PhysX of Havok?
PhysX gebruikt whatever het systeem te bieden heeft (als de kaart aanwezig is word die gebruikt, als het een PS3 is worden de verschillende CPUs gebruikt, etc). De programeur hoeft alleen de PhysX API aan te roepen. En ik neem aan dat Havok dezelfde methode toepast voor hun GPU "hack".
Havok of PhysX te duur? Dan neem je ODE (gemaakt door een aantal ex MathEngine (e.g. Karma) medewerkers). Misschien niet zo mature as Havok en PhysX maar nog altijd meer mature dan MS's engine.

Het grootste probleem met Microsoft's idee is dat het alleen werkt voor MS Windows (versie X?). In tegenstelling tot de andere engines. Het zou pas nuttig worden als er verschillende hardware oplossingen. Maar op dit moment is het toch alleen the PhysX PPU.

PS. Waarom krijg ik altijd het idee dat men PhysX altijd weer gelijk steld met de PPU. PhysX werkt perfect zonder de PPU, het gaan alleen enorm veel sneller met de PPU. Je hebt de PPU niet nodig op een PhysX spel te spelen.<div class=r>[Reactie gewijzigd door El_Muerte_[TDS]]</div><!-- end -->
Je beantwoord je eigen vraag al bijna: PhysX kan geen GPU gebruiken, Havok kan geen PPU gebruiken. ODE kan voor zover ik snel even kon zien geen van beide gebruiken. De ontwikkelaar moet dus f een harde keuze maken over welke vormen van acceleratie wel of niet ondersteund worden, f werk dubbel doen. Met een Physics-API in DirectX die calls kan doorsturen naar wat dan ook hoeft de ontwikkelaar zich daar helemaal geen zorgen meer over te maken (mits iedereen een beetje meewerkt).
m.a.w. de physics in directx is niks anders dan een wrapper voor bestaande physics engines?
Interesant, maar dan verlies je heel veel kracht van verschillende physics engines. Bijvoorbeeld, de meeste physics engines ondersteunen ridig bodies. Maar wat doe je dan met particle-based fluid simulations, soft bodies en cloth simulation?
Verder zou het systeem dan on-the-fly the physics data moeten converteren naar de backend API die gebruikt wordt.
De graphics in directx is toch ook geen 3D engine?

DirectX is gewoon een gestandariseerde interface tussen hardware en programma code.
Het grootste probleem met Microsoft's idee is dat het alleen werkt voor MS Windows (versie X?). In tegenstelling tot de andere engines. Het zou pas nuttig worden als er verschillende hardware oplossingen. Maar op dit moment is het toch alleen the PhysX PPU.
Terwijl kortgeleden op Tweakers een bericht stond dat ATi in hun nieuwere GPU's ook al een soort van physics engine heeft ingebakken. Of nVidia zoiets ook heeft gedaan weet ik niet maar ik vermoed van wel. De PhysX PPU is dus niet de enige hardware oplossing. Om te voorkomen dat we weer zo'n hel krijgen net als vroeger met videokaarten en geluidskaarten. Dat DirectX 10 alleen werkt met Windows Vista zie ik niet als nadeel. Af en toe moet je backwards compatibiliteit laten varen om vooruitstrevend te zijn.
Sinds de komst van dual, en straks quad, cores lijkt het me idd. nodig dat er nieuwe progammeer mogelijkheden komen, anders zou je nog weing hebben aan al die CPU power.

De vraag in deze lijkt me, hoe gaan de GPU bakkers daarmee om, om zich daar op aan te passen. Maar het belangrijkste blijft het toch allemaal wel voor de developers, dat ze weten waar ze aan toe zijn straks met het progammeren, lijkt me dat het alleen maar makkelijker word, moet worden, voor ze dan nu al het geval is.

Als daarmee de ontwikkeltijd voor een spel omlaag kan kan dat voor de concument voordelen opleveren, in de vorm van de prijs. De vraag is alleen of dat zal gebeuren. De muziek industrie heeft ook nooit een echte prijsdaling laten zien, ondanks dat alles voor hun veel goedkoper viel te produceren. En als de ontwikkeltijd om laag kan zie ik een leuke toekomst voor de game industrie, meer spelers op de markt en misschien daardoor wel een terugkeer van de kleine software huizen, die over het algemeen leukere games maakte in het verleden dan bijv. een EA.

Misschien dat Realms dan eindelijk eens het vervolg van Duke Nukem kan uitbrengen :+
CPU worden sinds de 8086 steeds krachtiger. Helaas zijn vele schaal factoren niet lineair. Dus Meerdere cores is nu de weg om op te schalen. Meer 'n noodzaak dan 'n extra.
Als GPU ook gewoon lekker doorschalen, zijn makelijker te parraleliseren, moeten CPU dit ook doen anders heb je niet voldoende reken kracht om die next next nextgen GPU te voeden. Zij het met 8 cores.GpPU

AI en Physics worden steeds belangrijker oa door ageia en Havok FX. Dit kunnen SPE doen Cell structuur.
Desktop markt gaat ook die kant op.
Dus 8 PPU en 16SPE op 'n core kunnen de GPU R1000 aardige voeden en hebben ook nog specialised unit voor AI en Physics. Dat is de toekomst.
De reden dat GPU drivers multithreaded zijn zal late rgeen luxe zijn maar vanzelf sprekend.

Zie de toekomst er zo uit De render engine module alleen al gebruikt op zich zelf al 4 threads.
Physics loopt dan op bv 8 SPE
Hte is gewoon zo dat met DirectX veel simpeler te coden valt. Schrijf maar eens een game in OpenGL, je zult wel het verschil zien. En het feit dat Doom 3 in OpenGL is, durf ik geen voordeel te noemen, want het ondersteunt maar 1 merk 3D-kaarten goed: nVidia. Het komt er dus op neer dat, als je DirectX gebruikt, het spel ongeveer even goed zal draaien op systemen van dezelfde prijs/prestatie klasse, terwijl als je OpenGL gebruikt, je ofwel voor alle merken aparte code moet voorzien om ze optimaal te gebruiken, ofwel slechts 1 merk ondersteunt. ID Software heeft duidelijk voor dit laatste gekozen (ook door geldsmijterij van nVidia natuurlijk maar kom)

Dat DX10 Vista only wordt vind ik persoonlijk schandalig. Eerst laten ze de mensen serieus afdokken voor Windows XP, om dan nog geen 5 jaar later te zeggen: "sorry, maar als je nog iets wilt doen, zul je opnieuw moeten dokken". Dat vind ik dus niet kunnen. Als je een product lanceert waar je meer dan 300 euro voor vraagt, dan moet je toch ook minstens 10 jaar support geven. Kijk naar Ati, ze hebben zelfs nog een aparte driver van de allereerste 3D Rage Pro (1994) die vorig jaar nog een update kreeg. EAT THAT MS !!!
BTW dat van die driver ben ik 100% zeker, ik heb nog een 'PC' (zeg maar geavanceerde rekenmachine) staan met zo'n 3D Rage Pro, en ik was zeer tevreden met zo'n support.
Dat DX10 Vista only wordt vind ik persoonlijk schandalig
Dat kun je best vinden, maar dan heb je je niet genoeg verdiept in de materie. De reden dat DX10 niet op pre-Vista Windows OSen beschikbaar wordt is omdat de opzet van de API en het achterliggende drivermodel radicaal veranderd wordt. Dit is een verandering waar we zeker aan toe zijn, je wilt niet weten door hoeveel abstraction layers je DirectX commando's nu gaan, dit zorgt voor een heel erg inefficiente manier van renderen. Het is niet voor niets dat uit een Xbox veel meer te halen valt dan uit gelijke hardware op een Windows machine, juist omdat je al die abstractielagen niet hebt.

Omdat er een nieuw drivermodel nodig is kan dat niet zomaar even gentegreerd worden in Windows XP, maar met Vista hebben ze juist de mogelijkheid deze verandering vanaf het begin meteen door te voeren. Dt is de reden dat DX10 niet op Windows XP draait, geld heeft er compleet niets mee te maken.
Toch zou het wel handig zijn als er een standaard zou komen, die dan ook in gamekits (zie www.gamesmaken.startpagina.nl) gebruikt kunnen worden. Alhoewel, dan gaan al die games ook steeds meer op elkaar lijken. Dat is weer het nadeel van te makkelijke, standaard tools om games mee te maken. Net als met auto's die gaan ook steeds meer op elkaar lijken...
Grote kans dat dit dan alleen voor Windows Vista beschikbaar komt om ons allen aan te sporen te upgraden.

Ik hoop eigenlijk dat het OpenGL "kamp" hier iets mee gaat doen.
Dat is bij mijn weten DX10 zowiezo al. Dus eigenlijk geen extra reden om te klagen oid.
Eerst even wat mierenneukerij. MS heeft iedereen op het hart gedrukt dat het D3D10 zal worden (ja, in de NVidia slides staat het fout :o ) en dat dus alleen de graphics API op korte termijn geupdate zal worden. Daarom lijkt het mij dit bericht van The Inquirer (weer) pure speculatie, zoals ik hierboven al meldde.

D3D10 zal inderdaad alleen aan de Vista bezitters voorbehouden blijven, maar er zal ook een geupgrade versie van DirectX9 (DX9L dacht ik) uit worden gebracht met Vista die ook voor XP beschikbaar zal zijn. De komende paar jaar zullen spelbouwers zich waarschijnlijk dus vooral richten op DX9L, omdat dit gewoon een veel grotere markt is.

Zo, tijd voor :z
Tegen de leden van de Anti-MS lobby die hier direct weer op hun achterste benen gaat staan wil ik even het volgende zeggen:

Als je zo graag een open standaard wil voor Physics dan ga je toch lekker zelf aan de klus. Volgens mij bestaat OpenPL nog niet.

Maar ga niet roepen dat een commercieel bedrijf hier even een open standaard voor moet gaan verzinnen. Alsof je zelf alle code die je schrijft meteen met een GPL eraan op het Internet dumpt...

Wees eerder blij dat er in ieder geval een bedrijf is dat de zaken voor eindgebruikers eenvoudiger wil maken. Het maakt straks voor games niet meer uit welke Physics engine ze gebruiken (hardware of software), zolang ze de wrappers van DirectX gebruiken. Op die manier wordt het een stuk makkelijker de performance van hardware en software physics engines te vergelijken. Dat is weer goed voor de concurrentie, en concurrentie is weer precies datgene wat nodig is om fabrikanten te motiveren tot innovatie.
Wees eerder blij dat er in ieder geval een bedrijf is dat de zaken voor eindgebruikers eenvoudiger wil maken. Het maakt straks voor games niet meer uit welke Physics engine ze gebruiken (hardware of software), zolang ze de wrappers van DirectX gebruiken.
Zoals ik het zie is er geen voordeel voor de eindgebruiker bij. Alleen voor de developer. Het zal dus niet zo zijn dan je PhysX kan vervangen met Havok en dan het spel daar automatisch gebruik van maakt. Als dat wel zo is, wie gaat dan de licenties betalen? Jij? of Microsoft?
Bijvoorbeeld bij het gebruik DVD-Decoders (plugins) werkt dat wel zo.

Ik verwacht dat over een paar jaar de games en software driver zullen meeleveren die DXxx compatible is. Vervolgens zul je de keuze hebben wat je wilt gebruiken voor het berekenen van physics :
- een software driver (emulatie)
- een PPU + driver
- een GPU + driver

Op dat moment maakt het voor de correcte werking van de games niet meer uit wat je gebruikt. Je kunt dan gaan selecteren op waar het werkelijk om draait: Welke implementatie is voor mij het beste (welke software emulatie of welke driver/hardware combinatie).

Je zult deze keuze dus kunnen maken zonder dat je bang hoeft te zijn dat bepaalde games niet meer werken, omdat je de verkeerde grafische kaart of PPU-kaart hebt.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True