“Microsoft’s DirectX application programming interface (API) was first introduced in 1995. DirectX was designed to make life easier for software developers by providing a standard platform developers could use to easily make multimedia software and game programming for the Windows Platform.” More here.
I’ve always been impressed with the quality and speed of directx titles, but it pretty much locks you in to windows making games very difficult to port. I’ve tried playing directx based games in cedega and I always take a significant frame rate hit.
This is probably my biggest complaint about directx; much harder portability.
>much harder portability.
You mispelled “ZERO”
> This is probably my biggest complaint about directx;
> much harder portability.
If you complain this way, what are your suggestions? Which component(s) allow you to use 3d graphics, sound, input devices, etc. easily across all platforms *and* achieve the same level of maturity as DX on Windows (which is still the only relevant platform for game developers)?
Another question I must ask now is: If somebody writes a game based on X11, alsa, and similar… will it be easily portable to Windows? Will it then work with all the buggy drivers in Windows as well as DX-based games do?
First of all there’s a number of libraries that allow easy portability. Opengl is a great 3D standard that’s compatible with OSX, Linux, Windows, etc.
You can also use SDL libraries which are supported on all the major operating systems – and is open source.
A number of games have used libraries that allow for much easier portability, like Doom 3 for example.
> Opengl is a great 3D standard that’s compatible with
> OSX, Linux, Windows, etc.
I have not mentioned OpenGL intentionally. Yes, for graphics, the situation is good, but with most other areas, it isn’t.
> You can also use SDL libraries which are supported on
> all the major operating systems – and is open source.
SDL can be used on top of DirectX too. So if by your argument (and I agree with you on that) the portability of SDL compensates the non-portability of e.g. alsa, then by the same argument it compensates the non-portability of DirectX.
OpenGL and SDL get as close as you need to for most purposes. Much of the interesting stuff that DirectX has that SDL doesn’t (eg: DirectMusic) has been more or less completely ignored in the gaming industry.
The problem is that currently DX is the only gamming API that matters for PCs. OpenGL is there only for historic reasons.
Check ATI and NVidia developer centers, most of their tools/documentations tend to be DX related. Sure there are still some there are geared towards OpenGL but not as much as a few years ago.
And all other manufacturers they tend to provide only DX drivers.
Not to forget all the support provided by MS (I know that they do it in order to promote DX).
Only modeling tools are heavy users of OpenGL nowadays and even them tend to support DX as well. I guess Id is the only major game studio still officially using OpenGL.
But I wouldn’t blame MS that much, each platform tends to have their own gaming APIs. For example there isn’t a complete OpenGL support in game consoles.
Don’t forget that DX is more than just a 3D API. Who gives you OpenGL support? What about the remaining parts of your application?
What about Apple? Before OSX it used to promote their own API, Quickdraw 3D. Their OpenGL support came only with OSX
So DX used to suck but MS improved it quite a lot. Maybe it still misses a few things but it is much better nowadays.
“So DX used to suck but MS improved it quite a lot. Maybe it still misses a few things but it is much better nowadays.”
Missing in DirectX is interpolarity i.e. it cannot be ported to other platforms.
If you want that just use a middleware engine like Torque, Ogre, Irrlicht, whatever.
Or do you also want the console APIs in your PC?
What about Warp3D? Maybe I would like to port Amiga stuff to Windows as well.
It might not be nice to make it a Windows API but then again, would any other manufacturer with the same market share act differently?
As far as I know MS has no plans to port DX10 over to WinXP, so DX10 games will be exclusive to Vista.
I was looking at Crysis, which is going to be one of the first major DX10 titles and the screenshots don’t look too bad.
Game: http://pc.ign.com/objects/694/694190.html
pic: http://pcmedia.ign.com/pc/image/article/705/705664/crysis-200605080…
The screenshots were taken with Vista/DX10 running on a DX9 gen GPU which won’t really see the full potential.
I believe Halo 2 PC and Flight Sim X are going to be exclusive Vista titles also.
This pretty much means that even if Vista is a flop, people will migrate to it for DX10 if nothing else.
Edited 2006-10-29 07:11
Actually, Flight Sim X has been already released and no, it doesn’t even require DX9 card (although I seriously wouldn’t want to see it running on 32 MB DX7 card, which is in minimal requirements).
There was a time when I was completely up to snuff when it came to 3D and gaming…
I’ve certainly fallen behind with my lack of funds and my, well, Radeon 9000 Pro
If that screen shot is truly indicative of this game, I’m truly amazed.
I know it doesn’t mean much, coming from a GeForce 2 MX/400 owner, but that is awesome!
I saw the video trailer where the devs where discussing the ‘firsts’ the game represents. Crysis is truly awesome but you will need some serious cash to be able to appreciate it in all its glory. The devs say thatthe Xbox 360 and the PS3 are not powerful enough for Crysis to be played as its intended.
MS has a monopoly on desktop OS sales. OEMs are going to stop selling XP at or not long after when Vista ships; therefore, Vista is practically guaranteed to be a success. The only way that it could conceivably fail is if it has some kind of overwhelmingly glaring defect that causes OEMs not to adopt it. But I’d bet, in that scenario, that MS would throw practically any amount of resources to fix the problem and get back on track.
By that logic, Windows ME couldn’t fail, and BOB was always going to be a success.
did Windows ME fail?
“Gartner Dataquest estimates 10 percent of PCs sold this year will pack Windows XP compared with 11 percent for Microsoft’s earlier Windows Me. Both operating systems sold on new PCs for about the same amount of time, but Microsoft released Me during a stronger sales cycle for new computers.”
I think this supports his argument, we’ll eat whatever MS lets us eat. We all can agree it sucked… but they sold more boxes of ME than …. (insert any non MS OS and a many MS ones if you only count the year(?) they marketed ME at the home user)
“we’ll eat whatever MS lets us eat.”
Agreed, and the best part about ME for MS was that it was so bad people migrated off it and quickly bought XP too.
If Vista 1.0 is crap it just ensures people will buy the upgrade to 2.0. They have the perfect buisness model.
Actually you are mistaken. While there would be no DirectX 10 for XP, it will get 9l which is the same thing only with a different name and slightly different hooks to the underlying OS. But the bottom line is that DirectX 10 games would play on XP at least for the next couple of years or so. That is if MS doesn’t go back on it’s word.
Edited 2006-10-29 08:01
I thought I read DirectX 10L is for DX9 cards to run on Vista properly and to take full advantage of Aero.
DX9L is a compatibility layer so that Vista will work with DX9 cards. DX10 will only work with DX10 cards on Vista. I’m not sure if DX9L (or its equivalent) will be ported back to XP or not, but then I’m not even sure it is different than what XP already has with DX9.
>If that screen shot is truly indicative of this
>game, I’m truly amazed.
Its not just an upgraded API that makes a screen look like that. Its more related to graphic engine and images selection. Obviously newer video cards make it practical and a newer API may make it easier to code, but the output isn’t a result of the API per sa.
>I think it’s a bit short-sighted to blame the game
>developers’ “laziness”. Things look a bit different
>if you actually produce a game on which your >monetary income depends.
What? The choice of API shouldn’t affect $$$. End users could care less if they look the same.
What? The choice of API shouldn’t affect $$$. End users could care less if they look the same.
The choice of API does affect income, just as the choice of programming language does. If one API is easier for developers to use and delivers better performance, the final product will cost developers less to create and be a better game for the consumer. It’s a win-win situation.
It would be nice if all games were cross-platform, but *nix/Mac gamers constitute a miniscule niche in what is already a niche market (the PC gaming industry is small potatoes compared to console gaming). Making cross-platform computer games is generally not worth the extra time, effort, and expense involved.
(the PC gaming industry is small potatoes compared to console gaming).
Can anyone verify this? I would have thought PC gaming would be larger. Why buy a console when you already have a PC?
(I’m sure there are many reasons why – but I’m also sure that a lot of people won’t see it that way).
At one point in time I would have thought the same thing, that the PC Gaming market was much bigger than Consoles. But it is very rapidly changing. If you really think about it, you can blame the Dell style of computers.
It is getting to the point where you need some serious hardware to play PC games. It’s a constant upgrade slope. Not to mention your average person can’t just go out and buy a PC game, bring it home and hope that it has playable performance on their Dell PC with an Intel Graphics card.
On the other hand, any Playstation or Xbox or whatever game will play on it’s designated platform without any problems.
It’s kind of sad really, because in my mind PC games can still be much more complex and far more playable. This really shows up in games that are created for the Console then ported over to the PC. The interfaces for these games are usually horrible. Almost requiring you to buy a gamepad for, in which case you’re back to just playing it in a Console-like way anyhow.
I wonder how the non-ATI and non-nVidia companies that make graphics cards are going to handle the upgrade to DX10, since it sounds to me like they’re going to have to step up the power of their GPUs just to get them to support everything properly. I guess time will tell.
It’s kind of sad really, because in my mind PC games can still be much more complex and far more playable.
Your assumption here is that people actually like complexity in their games, though many of us don’t. When playing a game, if it takes me more than 10 minutes to learn how to play it, I’m just not that interested. And it’s not that I have a short attention span, just that I have better things to do with my time than spending 3 hours learning the controls and/or thumbing through a 500 page manual.
That’s not to say that consoles (with their 14-button controllers) are much better in this regard, which is why I’m hoping the Wii will give us a bit a reprieve from this madness.
It has been my experience that the simpler games are usually the most fun. Case in point, Tetris was first released about 20 years ago, and I still play it to this day.
Personally, I have absolutely 0 interested in any of the DX10 games. Most of them are just prettier versions of games we’ve been playing for the past 14-15 years. I mean, how many times can a person play Doom over and over and over again until they get sick of it?
Edited 2006-10-29 18:06
“Tetris was first released about 20 years ago, and I still play it to this day. ”
and
“…just prettier versions of games we’ve been playing for the past 14-15 years. I mean, how many times can a person play Doom over and over and over again until they get sick of it? ”
Well you’ve been playing Tetris for 20 years… so at least 20.
The PC market is all but negligible these days; it’s largely been a non-factor since the early 1990s.
NPD reports that PC game sales were under $1 billion in 2005 (when including subscriptions and paid content, this figure rises to $1.4 billion). In the same year, console/handheld sales were over $10.5 billion.
Why buy a console when you already have a PC?
Very few people have gaming-quality PCs. They’re over-represented on the internet (and particularly on technology sites), of course.
Consoles are easier to set up/use, offer a unified/streamlined experience, and are much cheaper than even a gaming video card (let alone the rest of a gaming PC). Moreover, they offer many more high-quality games and a larger variety thereof. Consoles: Substantially better games + substantially better experience + substantially lower cost. PCs: Slightly better graphics.
I agree with you on most points, but not on your point about better games.
Consoles are much more limited when it comes to gain. You can’t make any non-arcade/sports type games on any console. Image playing Simcity on a console.
Furthermore, it’s not possible to play FPSs or RTSs. Talk about variety. In the end, all console games offer the same old shit over and over again. With a few exceptions, console games have never made it into the gaming canon.
Speaking of better graphics, PC graphics are far superior to any console. When was Halo 2 released? 2004? By PC gamers were already enjoying the near realistic graphics/engine of Half Life 2. If you ever played Half Life 2 and Halo 2 you would understand that they are miles apart graphically (and storywise – but that’s more subjective).
“Consoles are easier to set up/use, offer a unified/streamlined experience, and are much cheaper than even a gaming video card (let alone the rest of a gaming PC). Moreover, they offer many more high-quality games and a larger variety thereof. Consoles: Substantially better games + substantially better experience + substantially lower cost. PCs: Slightly better graphics.”
It may sound odd but I think the mouse makes the PC a much better platform. Games like FPS and CoH or other RTS games are much more playable on the PC. Been that way for me since the Amiga days in ~1987. It’s only relatively recently that console games offer internet gaming, right?
Ahh well. I’m excited about DX10 and am willing to buy Vista, in part because of it. I like Linux, *bsd too but I also like Windows for mostly gaming reasons. Seems DX10 is far and away ahead of anything else out there. Not like there are any games for it now though..
It may sound odd but I think the mouse makes the PC a much better platform.
The SNES (1991), Dreamcast (1999) and Xbox (2001) all support mice (the Xbox requires a simple 3rd party adapter, however). Nintendo’s new Wii, of course, offers a wireless three-dimension tracking device.
Games like FPS and CoH or other RTS games are much more playable on the PC. Been that way for me since the Amiga days in ~1987.
That may be. The RTS and FPS genres have been stagnant for the last decade to fifteen years on the PC side, however, while being essentially the only notable game varieties (along with The Sims/*Tycoon games and MMORPGs) on that platform.
Doubtless this has contributed to the decline of PC gaming.
It’s only relatively recently that console games offer internet gaming, right?
Only since the early 1990s, yes.
Well you can really push the envelope if you like to build your own PC.I mean hardware will no doubt be supported.
the whole idea for dx10 is to lock you all into upgrading to vista.
new games come out with support for dx10, coz dx9 is old, and no-one likes old stuff.
get the “all new dx10” games…. oh they need vista.
ok get “all new dx10 games and vista” !
never mind that opengl muck, we will make sure them games run like tripe in all new vista, want fast games on your new vista machine ? yep, you need dx10
you locked in boy !
Seems like no one cares about your whining.
DX10 = Win
DX10 GPUs = Win
The fact that OpenGL has to catch up is not Microsoft’s problem. They’re not going to let the rest of the industry slow them down in this situation — they, along with NVIDIA and ATI, are leading the 3D graphics industry with DX10 and DX10 GPUs.
I hope Transgaming will make cedega campatible:-)
To what? DirectX3? I don’t think they will ever succed in that.
Imagine if all this effort was put into a open standard like making OpenGL better intead of a propeitary locked-in single-vendor one-guy-holding-the-keys to everyones money solution like SecretX.
What is really amazing is just how LAZY the game industry is and how willing they are to be totally dependent on a single company to decide when and where they can sell and deploy their software.
> What is really amazing is just how LAZY the game
> industry is and how willing they are to be totally
> dependent on a single company to decide when and where
> they can sell and deploy their software.
I think it’s a bit short-sighted to blame the game developers’ “laziness”. Things look a bit different if you actually produce a game on which your monetary income depends.
There are plenty companies making games for Linux AND Windows – in fact I was surprised when I picked up a copy of the UK’s Linux Format that there were no less than three in one issue of the magazine.
There is even a company which is releasing a Linux sequel to it’s openGL-based game on both Linux and Windows even though none of the developers is a regular Linux user and the sequel will use DirectX on Windows.
So maybe it’s not laziness but fear – fear of the possible consequences of carving out a Linux gaming market; whether that’s because of fear that it won’t work or fear that they’ll piss off Microsoft – well, you’ll have to get them drunk enough to give you an honest answer.
> So maybe it’s not laziness but fear – fear of the
> possible consequences of carving out a Linux gaming
> market; whether that’s because of fear that it won’t
> work or fear that they’ll piss off Microsoft – well,
> you’ll have to get them drunk enough to give you an
> honest answer.
Fear that they’ll piss of MS? I doubt that MS would care.
Fear that it won’t work? Sound reasonable.
But I also think you underestimate the amount of work it takes to make a game actually work on all distributions (including buggy ones and those messed up by a user), all different kernel versions (including buggy and custom-configured ones), and all hardware (including buggy hardware, buggy drivers, or very exotic hardware). In the end, if one game doesn’t work but others do, the user blames the game.
There really isn’t a lot to a game that makes you dependent on the kernel version or anything like that. There could be issues with threading now, but outside of that not that much. Either what you have works and the game works, or it doesn’t, and well, the vendor isn’t going to care. There are a lot of versions of drivers on Windows for example that won’t work with a title because something ATI or NVIDIA did was broken, and well, working around it isn’t the biggest priority in the world–update your drivers. Working around limitations of hardware is one thing, but expecting a vendor to care that your “exotic hardware” is incompatible with your kernel and causes you problems is outside what they will deal with.
It has nothing to do with ‘fear.’ Direct3D is the preeminent API for the Windows platform, and fits into the same model as the rest of the DirectX API which a developer will most-likely use for input and sound. Given that for a long time (and even now to some extent) that most 3D vendors outside of NVIDIA had better Direct3D implementations than OpenGL ICDs, and that Linux users are such a small market with a potentially disproportionate support cost, it makes a lot of sense to focus your resources on the areas of the game that take up a lot of time, which isn’t usually the part tied closely to Direct3D, and getting the title out on time.
If there were a large, obvious demand for linux games to offset development costs then they would make them. Most game developers are not PC lackeys, and have little to fear from Microsoft. There is just so much time, and it’s a matter of getting the most out of it. It’s the same chicken-and-egg problem operating systems other than Windows have to deal with in all areas of software support, where popularity will be hampered by the availability of desirable software, and desirable software will be hampered by the availability of customers. I think large bounties in escrow might tempt some developers to make ports: a large wad of cash speaks louder than a web poll.
Cedega and Wine are planning to implement DirectX 10 API support. In the next couple years, we’ll probably be able to play some DirectX 10 titles on Linux (as long as they dont use any managed code).
Maybe the rest of the industry should wake up and provide an alternative solution that is as comprehensive and advanced as DX10?
Until that happens, I think the gaming crowd will be perfectly happy with the next-gen stuff coming out. Remember … gamers don’t care that the gaming API in use is not Free as in Freedom. They just want fast and sexy graphics.
Don’t be so short-sighted.
I don’t know what all of you dirty Open Source hippies are bitching about now.
After Vista and DX10 is released, who would want to even make games for Linux without the following Microsoft innovations:
Programmable Competitionf–k Units (TM/patent pending)
GPU-based SameGame/DifferentGraphics Accelerators (TM/patent pending)
Unified NotABugButAFeature Architecture (TM/patent pending)
You dirty hippies talk about your freedom and competition in the market, but with features that are THIS GOOD ™, who the hell cares?
Basically the only real competition at this time for MS is Sony which I believe uses OpenGL 2.x for its rendering engine. If the PS3 goes down in flames it’s likely MS will have won (for the time being) in the graphics arena. I wouldn’t be surprised to see directX stagnate at that time as so many other MS software products have when MS believes they’ve dominated that market.
I guess Nintendo is also using OpenGL but somehow I think they aren’t going to really push the envelope with their games.
If the PS3 goes down in flames it’s likely MS will have won (for the time being) in the graphics arena. I wouldn’t be surprised to see directX stagnate at that time as so many other MS software products have when MS believes they’ve dominated that market.
Does not follow. DX never stagnated even when MS didn’t face Sony.
As the interviewed says, DX10 is an evolutionary step, not a revolutionary step when compared against 9.0c. What’s really annoying id the incredible hype/fud/fog that’s around it, like all the 9.0Xl/9.0L misinformation or the current dx10 titles. For example, while the artcile seems informed and full of technical details, it fails miserably in the end, when giving the user a Flightsim X screenshots comparison between directx 9 and directx10. Truth is, when the same directx 10 screenshot was released a long time ago, a very small fine print was added: “ARTIST CONCEPTION of a would be directx 10 rendered screenshot”. Of course the small print has long gone, and now the artist conception (NOTHING MORE THAN A PHOTOSHOPPED IMAGE) has now become a real DX 10 screen. Amazing. Summarizing: DX10 looks exactly like DX9.0 and most of the dx10 screens we’re seeing (some people believe that even crysis is running on 9.0c since dx10 has not been finalized yet) are either fake or non representative. What’s actually worrying, is the fact that Vista would probably be more a bad than a good thing to the windows pc gaming market: if it sells, it might fracture in the PC gaming market in two parts, rising already high developement prices; if it fails direct x 10 will become irrelevant due to the scarce adoption of the new os, and the pc would stand behind more and more advanced gaming consoles.
“and the pc would stand behind more and more advanced gaming consoles.”
Isn’t that what they want??? They get more money out of you if you have to buy a console from them and an OS for your pc from them… If you just needed the OS they lose out on the licensing revenue from the console.
I firmly beleive that MS wants games off the PC. It was only convenient for them when they wanted to control the OS market. Now that they have that they want you to buy the console instead.
It is metioned in the article that preemption will be part of the spec. Does anyone know how this is implemented? It would seem you need a scheduler of some sort and maybe graphics tasks with different priority? Are these implemented in the drivers by the graphics manufacturer or does Vista offer some sort of support for this and does this mean all rendering will essentially be indirect? I googled for it but could not find a satisfying answer.
By the way, if all of this does not make sense in some way, please feel free to point this out. Thanks.
This is true. The kernel-mode portion of the DirectX runtime has a GPU scheduler and a GPU virtual memory manager. This is necessary to improve reliability for desktop compositing. Before this move, direct3d apps had to be ready at any point to receive a SURFACE_LOST message and recreate the entire scene from scratch. Now SURFACE_LOST doesn’t happen because things can be mapped out to main memory when the GPU runs out of local memory.
Scheduling is necessary to prevent applications from hogging GPU resources, since we’re now going to have multiple apps using directx at once, unlike the single-app system of before.
This whole architecture can be explored if you look up WDDM or VDDM.
They still beating that dead horse?
You’ll be welcome when you decide to come back to the real world. We all miss you here.