DX10 - How Far Have We Come?
MojoKid writes "When DirectX 10 was first introduced to the market by graphics
manufacturers and subsequently supported by Windows Vista, it was generally
understood that adoption by game developers was going to be more of a slow
migration than a quick flip of a switch. That said, nearly a year later, the
question is how far have we come? An article at the
HotHardware site showcases many of the most popular DX10-capable game
engines, like
Bioshock ,
World In Conflict , Call of Juarez, Lost Planet, and
Company of Heroes, and features current image quality comparisons versus DX9
modes with each. The article
also details
performance levels across many of the more popular graphics
cards, from both the mid-range and high-end." PC Perspective has a similar look at DX10 performance.
Am I the only one who find the DX9 version of the pictures more appealing? With the exception of the Bioshock fog examples (which had sharp boundaries in DX9) they just look more "natural" to me.
Then the answer is going to have to be "not very far". I can't see game developers getting that excited about something supported only on a version of the operating system that people are specifically NOT migrating to in droves.
These numbers to me validate my suspicion that DX10 was nothing more than a cheep angle to sell Vista. The performance isn't a tremendous improvement and the resulting graphics are enough of an improvement that I'm going to let Vista suck down that much of my hardware.
What's this "we" business? DX10 is only available with Vista, and Vista sales are abysmal. And with this being a *nix-oriented site, it's falling on deaf ears.
The summary states that DirectX 10 was "introduced" to by the hardware manufacturers and Windows adopted it. I have always understood it to be the other way around. If it is the hardware makers, then why are they actively supporting two different 3D APIs (DX, OpenGL)? Does this mean that DirectX could be adopted by another OS, say Linux? Only for a fee?
I urge everyone to vote with their wallet and try games that support OpenGL and Linux. Sure, you may never get to play Halo 3 in Linux, but if the game developers see the market growing there, I'm sure we'll start to see more big names soon. It will be to their ultimate benefit, too, since they can take advantage of the advanced technologies that Linux has to offer (mostly for free). Can you imagine games or applications that worked with Beryl to create actual 3D desktop objects instead of just 2D windows. Or how about a Linux LiveCD that did nothing but boot a kernel with drivers and ran a dedicated game; every single CPU cycle would be dedicated to giving you frames per second.
Personally, I've been addicted to this great 3D bridge-building game, Bridge Construction Set. Of course, it supports Linux
Adapt, adopt, or get out of the way!
The real joke is that neither DX9 nor DX10 are inherently "better" any more than the original Glide API was inherently "better" than DirectX or OpenGL. Hardware has been changed constantly, to give "better" responses to this call or that call, but inevitably you have to write a driver that converts the OpenGL or DX9/DX10 or whatever into something your card understands.
In the really old days, you had people actually coding for the card on hand. This is why there's a gazillion different releases of Mechwarrior 2, each of which varies greatly in image quality and features - each had to be hand tuned to the card.
If Bioshock had been intended for DX9, it would probably look the same as that DX10 shot on DX9. They'd have figured out what they needed to do, perhaps coded a few "If ATI, do this, if NVidia, do this, if Intel Extreme fail 'your video card is too crappy to play this game'" decisions for specific hardware, and that would have been that. Since it was backported (and MS would have thrown a fit to have "no difference") they had to just do a more slappy job of it.
Then again, if not for the emphasis on ridiculous graphics, think about how many games would be able to use their processing power for some seriously wicked AI. Even Bioshock only has half-decent AI that can be twigged to and predicted fairly easily - you know that a wrench guy is going to rush you, you know that the spider slicers will hang from the ceiling and lob stuff all day till you burn or freeze them, you know where the houdinis are going to land long before the animation starts merely because you can figure out what the AI tree says for them to do in what radius... it's sad.
Hell, you can predict the precise spot on the health bar where they'll run for the health station, and if you're smart you trapped that thing half an hour ago. Now you get to watch as four of them all kill themselves on the same damn one, never paying attention to the 3 dead bodies on the floor that obviously just gassed themselve using a booby-trapped station.
But nevermind. I know the reason they want graphics over AI - the same fucking morons that could never defeat a decently programmed AI (hell, they have trouble getting through Halo on NORMAL), drool over thinking that they can see the shoelaces on Madden's boot.
I don't think DirectX 10 will achieve any kind of market acceptance until DirectX 11 is released. Then everyone will bitch about DirectX 11's high-end hardware requirements, DRM lockdowns, and poor performance and they'll start clamoring for the good old days of Direct X 10.
That's great, except for the fact that shadows don't have crisp edges in the real world. Unless it's illuminated by a point-source (which immediately excludes the sun, lamps, flashlights, and pretty much every other light source you're likely to encounter), there will be a penumbra. The DX9 image here: http://www.hothardware.com/articleimages/item1031/big_stateofdx10_wic_shad.jpg is more realistic.
Not sure how this got confused by either bioshock or the reviewers...
DirectX 10 allows for both 'crisp' or 'soft' shadowing, as some games demonstrate, the DirectX 10 shadows are 'softer' and more realistic.
The 'difference' with DirectX 10 is that shadows are done on the GPU, in DirectX9 shadows are done on the CPU. This is the 'main' difference between DX9 and DX10.
The 'crisp' choice by bioshock is NOT what DX10 is about, this is a game developer choice. PERIOD.
I know reviews like this can lead people down wrong paths, but it doesn't hurt to look up this type of information before making fun of a fact that is incorrect in the first place.
It is strange that any site 'reviewing' DX10 in comparison to DX9 would not even know the basic 'consumer' terminology for the differences, so they would know what they were looking at... Maybe someday we can get a review posted on SlashDot that is actually done by gaming professionals... (gasp)
Here is a quick list from the MS Consumer Info site on DirectX10, notice the reference to shadows specifically.
-----------------------
Summary
In summary, DirectX10 provides the following benefits to gamers:
More life-like materials and characters with:
Animated fur & vegetation
Softer/sharper shadows
Richer scenes; complex environments
Thicker forests, larger armies!
Dynamic and ever-changing in-game scenarios
Realistic motion blurring
Volumetric effects
Thicker, more realistic smoke/clouds
Other
Realistic reflections/refractions on water/cars/glass
Reduced load on CPU
-Re-routes bulk of graphics processing to GPU
-Avoids glitching & system hangs during game play
As someone who writes AI for text-based games, let me clear you of some misconceptions.
First, the goal of "AI" isn't always to be as smart as possible. Often, the goal is to make something believable and/or of the appropriate difficulty level. It's possible that Bioshock missed the mark there, but I haven't played Bioshock yet, so I don't know.
I can write "AI" that will kick your ass every time, even without cheating. (Mobs have the advantage of being on home turf, and they outnumber you.) But that's not fun for the player, so I don't do it. Instead, I'll write something with a pattern you have to figure out. Once you learn one of the ways to beat it, the mob will be easy for you, and it's time to move on to the next area. Very few mobs get the full "try to survive at all cost" treatment, and even fewer are programmed to actually learn from your behavior.
You're describing the classic "I wish this mob would keep getting harder" remorse, but think about it: would it really make sense for those mobs to learn from your new tactics? Are they supposed to be smart, or are they just supposed to be an obstacle?
As for your dead bodies example: would you really prefer to have an infinite standoff as the mobs decide it's not worth getting killed, so they go hide somewhere with their own traps and wait for you to attack? Right... so get over it. If games were realistic, you would realdie on level 1.
> I can write "AI" that will kick your ass every time, even without cheating.
> (Mobs have the advantage of being on home turf, and they outnumber you.)
You are assuming that the mob would just sit there and wait for the player, like it usually does in pretty much every game. In reality, a "level" would not necessarily know that Gordon Freeman is on his way. Neither will they have the patience to sit in their assigned ambush places, waiting for him all day long. A better AI would actually "live" in the environment where it is placed, so that it would react to the player instead of waiting for him. It would also be fun to watch. In Half-Life I really enjoyed watching those occasional scenes where monsters are wondering around doing things; like when the bullsquids feed on the headcrabs. I wish there were more things like that, things worth watching.
> would it really make sense for those mobs to learn from your new tactics?
> Are they supposed to be smart, or are they just supposed to be an obstacle?
If the AI was smart, you wouldn't need a mob. You would only need a few individuals. It would be like a multiplayer deathmatch, and, judging from the popularity of those, would likely be more fun than the current mob situation.
> As for your dead bodies example: would you really prefer to have an infinite standoff
> as the mobs decide it's not worth getting killed, so they go hide somewhere with their
> own traps and wait for you to attack?
An infinite standoff will only happen if the game designer makes you kill off the entire mob before setting off some stupid trigger to open some stupid door. Don't program artificial obstacles and the player will be able to ignore the hiding mob and go on, just like in real life.
Thinking for yourself rather than letting Slashdot do it for you.
It's official. Most of you are morons.