DirectX Support

BlitzMax Forums/BlitzMax Programming/DirectX Support

TartanTangerine (was Indiepath)(Posted 2005) [#1]
I note that in the recent update BRL has introduced support for DirectX, without doubt this is very welcome. My concern is that it is only for DirectX9, will there be support for DX7 and DX8?

Why do we need support for old versions? Simple, compatibility. The only reason Indiepath is not using BMax for development is because of the small OpenGL Installed base, even fewer people have DX9.

Give us backwards compat please.


nawi(Posted 2005) [#2]
Tis' weird, I know nobody, I mean NOBODY who doesnt have DX9. And it only takes few minutes to install and benefits alot. Its VERY hard to find a game nowadays that doesnt require DX9, so whats the big deal? And if your talking about DX9 hardware side, those effects etc can be turned off in options etc.

If user is too lazy to install library that almost every new game on the planet requires, its their problem.

And your saying that not many people dont have OpenGL support, what the heck? Again, I know NOBODY IN THE DAMN WORLD WHO DOESNT HAVE OPENGL, its preinstalled in windows etc, and all GFX cards in the whole universum supports it. And then your saying that EVEN LESS people have DX9.

And btw, forcing people to upgrade to DX9 is good thing, cos they are going to need to do it sooner or later anyway.

Even my UBER UBER old computer, 450MHZ pentium III has OpenGL support, WinXP and DX9.


SillyPutty(Posted 2005) [#3]
I agree with nawi, but you will find people who are stuck in the dark ages :)


TartanTangerine (was Indiepath)(Posted 2005) [#4]
@nawi, a game developer should never make those presumptions.

If user is too lazy to install library that almost every new game on the planet requires, its their problem.

No, it's our problem. It costs enough to do the marketing to get people to download your game in the first place, if they download it and it does not work then.... They are not going to buy.

Who is our audience?
RealArcade is targeted at the rapidly-growing adult gaming segment ranging from 30-60 years of age. More than 55% of RealArcade customers are female, more than 60% are over 40 and more than 50% are on a broadband connection. GameHouse.com customers are 70% female, and more than 60% are over 40.

So how many people do you know who fit into these segments? Do they all have DirectX9 or OpenGL, and would they know how to download the latest drivers if needed? I think not.


SillyPutty(Posted 2005) [#5]
Maybe the upcoming Max3D module will cater for this ?


TartanTangerine (was Indiepath)(Posted 2005) [#6]
It is also worth noting that PopCap and Reflexive products default to software render as they found that a lot of customers did not have support for 3d.

Big Kahuna Reef is software Render and even uses Dirty Rects to squeeze FPS!

If you run Big Kahuna Reef and type “dirtyrect” and then hold F3 you can see this in action.


FlameDuck(Posted 2005) [#7]
And it only takes few minutes to install and benefits alot.
Actually it benefits nothing and the time it takes is directly proportional to how fast an internet connection you have.

Its VERY hard to find a game nowadays that doesnt require DX9, so whats the big deal?
Really? I'd hazzard a guess that you aren't looking very hard.

If user is too lazy to install library that almost every new game on the planet requires, its their problem.
What about "If you can't see the point of doing it, because none of your other games need it", and you certainly aren't going to install it because some unknown person on the Internet has a vaguely amusing game you might be interested in, when you'd rather be playing Diamond mine anyhoo.

and all GFX cards in the whole universum supports it.
Not all of them. In fact I've seen quite a few BRAND NEW LAPTOPS with sod all OpenGL support.

And btw, forcing people to upgrade to DX9 is good thing, cos they are going to need to do it sooner or later
You are not forcing anyone, and people who mainly use their PC for word processing, e-mail and the occasional game of Freecell or Diamond mine is NEVER, EVER going to need DirectX9.

It a competitive world, and if you aren't willing to do better than everyone else, you won't be in business very long.

Even my UBER UBER old computer, 450MHZ pentium III has OpenGL support, WinXP and DX9.
One of my mates' brand new Zepto 3GHz laptop, doesn't do OpenGL very convincingly. In fact after running an OpenGL application it is often nessecary to restart WindowsXP.


skidracer(Posted 2005) [#8]
according to this dx9 is now 166 meg and you have to have a legit version of Windows, I think I'll stick with DX8...

oh but wait, there's a 34 meg version which might work, admittedly you'd still have to be pretty brave to attempt that on dialup


Damien Sturdy(Posted 2005) [#9]
Heh, this sucks.

My puter came with a legit XP cd and serial number, but i lost my number (yeah, I bet youve heard it before....). I got myself one and used that instead...

That means i cant upgrade to DX9 next time i reinstall :(


Sweenie(Posted 2005) [#10]
Having DX9 as a requirement for your game isn't that big of a problem if your game comes on a CD or DVD and your game installation detects and trigger the DX9 installation if it's missing.
But most shareware/indie games don't come on a cd or dvd.
Ok, it can be part of a pc-mag disc but that doesn't guarantee that DX9 is on the disc.


FlameDuck(Posted 2005) [#11]
according to this dx9 is now 166 meg
I think they just chose that number specificly for it's suggestive evilness.

Having DX9 as a requirement for your game isn't that big of a problem if your game comes on a CD or DVD and your game installation detects and trigger the DX9 installation if it's missing.
Ofcourse the requirement isn't DirectX9. The requirement is OpenGL *or* DirectX9. So you've got quite a lot of systems covered, old aswell as new.


Kanati(Posted 2005) [#12]
You have blitz3d for DX7... Max has to move forward. I oppose any DX7/8 backward compatibility unless it doesn't impact development on DX9 extensions at all.


Mustang(Posted 2005) [#13]

dx9 is now 166 meg and you have to have a legit version of Windows, I think I'll stick with DX8...



So... you have non-legit Windows installed? :P [just had to]


PowerPC603(Posted 2005) [#14]
A gamer that wants to play your game, while it requires DX9 and he doesn't have it and is too lazy to install it, is not really a good gamer, in my opinion.

Those can be the same guys that see Doom3, and they want to play it on a Pentium MMX 166MHz and then claim that it should run and that the developer didn't make the game fast enoguh so that it could run on their system.

If you want to run the latest games, you just need a rather good pc, and not some antique system.

Once, I bought SettlersIV and it required a 4Mb gfx card.
I had a 4Mb gfx card, but couldn't run the game (because there was no 4Mb left after booting Windows).
I just bought a new gfx card, and the game ran fine.
Maybe it's just me (I'm a little crazy perhaps), but if you really want to play it, you need a suitable system.

Perhaps Mark could add support for all DirectX versions (from the first version until DX9).
Then you can be sure it runs on every pc, and include an options screen where the player can disable everything, so it could run on a P1 with only 4Mb gfx card).
There are even some computers out there (I've seen one in my family) that only can run DOS and Win3.11 (has a 386 and 16Mb Ram).
If such a person required programmers to make games today that even support those computers, because they're too lazy (or just too stubborn) to upgrade, it's their fault that they cannot run the newest games.

I've personally seen a person that had only a 486 with 32Mb Ram and he wanted the shop-owner (in a computer-store) to install Win2000 on it.

It ran, but booting required about an half hour.
Is such a person allowed to contact Microsoft and call them idiots for not making Win2000 run smoothly on his system?

If he wants to run Win2000 smoothly, then he needs a computer that CAN run it smoothly.


teamonkey(Posted 2005) [#15]
Mark said in another thread that the DX9 module is incomplete. He said that a DirectX-based Max2D module wouldn't be started unless it could run on DX7. Take what you will from that.

Flameduck: The Sims 2 installs DX9 on installation anyway, whether it needs it or not.


TartanTangerine (was Indiepath)(Posted 2005) [#16]
I am not concerned as to whether the "Potential customer" is a "good gamer" or not. If they download a demo of our games and it does not run on thier machine I loose a potential sale.

IF the "Potential Customer" needs to download a 166MB file from Microsoft to play my 10MB demo they sure as hell are not going to download my demo.


FlameDuck(Posted 2005) [#17]
If you want to run the latest games, you just need a rather good pc, and not some antique system.
No you don't. There are plently of "latest games", even AAA titles that don't have 2.000 bucks worth of hardware requirements. Somewhat oddly, these are then the ones who go on to break previous sales records. Most people I know don't even play games on the PC anymore - one of my mates, when faced with having to upgrade his PC for the third time, decided to just get every major console instead, and all the games he wanted. In the end, he had saved nearly 400 dollars, and gotten a whole host of brilliant games, the likes of which the PC hasn't had a decent one released for in as long as I can remember! Oh, and unlike me, he can already play GTA: San Andreas, while I have to wait until June (by which time, I hope my PC will still be able to handle it. *Sigh*).

Perhaps Mark could add support for all DirectX versions (from the first version until DX9).
No. Currently BlitzMAX requires a 3D API for real--time rotation and scaling. DirectX couldn't do 3D until version 5, and then it did so rather poorly.

Then you can be sure it runs on every pc, and include an options screen where the player can disable everything, so it could run on a P1 with only 4Mb gfx card).
You don't need to have an options screen. You can do adaptive performmance testing, and adjust display options depending on the resulting framerate.

There are even some computers out there (I've seen one in my family) that only can run DOS and Win3.11 (has a 386 and 16Mb Ram).
Welll, you have to draw the line somewhere ofcourse. Platforms that have been abandoned by even the Russians is probably not the best market in the world.

When working as in independant software developer, your number of sales is directly proportional to your ability to pay your mortgage. So you'll want to be spreading your eggs to more baskets. Now if you where Valve, and where just sitting on the digital equivalent of crack, then yes, you can relly on gamers to sell their family into slavery and take out a second mortgage (one of those you get by e-mail no less) in their homes, in order to buy the latest, greatest Alienware PC they can possibly get. For everyone who isn't Valve, you have to be a little more restricctive with which limitations you put on your gamme. Why do you think all those bargain deer hunter 3D games sell so rediculously well? Because they're better than DOOM3? Or because they'll run on anything you throw at then, regardless of how "stupid" or "lazy" all the 1337 gamers think think they are?


PowerPC603(Posted 2005) [#18]
I know a programmer has to draw the line somewhere, but if you wanted to make a game based on features that only exist in DX9, then there's no need to worry too much about gamers that don't want to upgrade.
DX9 is free, so a customer doesn't even need to pay extra to get more functionality (and the ability to play the latest games).

Of course, you cannot expect every gamer to buy your game and upgrade their pc's with hardware that costs $2000.

The latest games don't even support Win95 anymore.
So if a player wants to run a DX7 game, which also requires Win98 or later, they have to upgrade to play those games.
If they don't want to do that, it's their problem.
And they cannot blaim only you, but they must blaim every other programmer, because almost no programmer works on Win95 anymore.

If they want to be left in the dark, it's their choice, and therefore shouldn't point the finger at you.

I also agree that DX7 needs to be supported (and not only DX9), because it supplies you with more potential customers.

My point is: don't go back futher than DX7, as this would be a waste of time for programmers (as this would only reach non-upgrading customers).


Damien Sturdy(Posted 2005) [#19]

if a player wants to run a DX7 game, which also requires Win98 or later


Really? My ol win95 box has DX7, no problem. My Sattelite laptop, win95.. Also has DX7.

I can't remember if i got dx8 to run on my win95 box though, i *think* it did, but i wouldnt go on that :/ Prolly more info on www.MicroSoft.com :/


Panno(Posted 2005) [#20]
bah ...

dx9 is here on every second PC Magazin (cost from 1-3,99€)
look forwards people, a new low budget PC (aldi) have a fast cpu > 3Ghz and a cool GFx.
most people i know use dx9 ..

i see no point why not use dx9 ..

mfg panno


Michael Reitzenstein(Posted 2005) [#21]
New low budget cars have run on lead free petrol for the last 20 years, but service stations still sell LRP here in Australia.


Loonie(Posted 2005) [#22]
Well, considering BRL has products covering older DX version, I see absolutely no point in adding pre-DX9 support to BMAX. Why? Just think about it, if it has taken this long for Mark to get BMAX to it's current state, and now adding DX9 support, imagine how long it would take for him to add support for older (sucky) technologies that are irrelevant.

Do you need older DX? Stick with B3D or B+. I honestly think the whole point of BMAX was/is to move forward, not backwards.

You guys are so hard to please. You deserve some spanking!

=)


ImaginaryHuman(Posted 2005) [#23]
Hey, so who's gunna create a Max2D software renderer, for starters?


Arcadenut(Posted 2005) [#24]
I'll just throw my support in for DX7. I don't want to require a 3D card or DX9 for my games. My main motivation for switching to BMax is going to be the OOP features.

I don't have the luxury of being able to throw sales away because my customers don't have the latest and greatest machines.

There are still millions of Win95 machines out there and I would like to have my games run on those machines.


smilertoo(Posted 2005) [#25]
Wasn't part of the point of Blitzmax to give the people asking for fancy features access? If you want to write dx7 you could use Blitz2D/3D.
I suppose once the dx9 module is done he could port it back to dx7.


FlameDuck(Posted 2005) [#26]
if you wanted to make a game based on features that only exist in DX9, then there's no need to worry too much about gamers that don't want to upgrade.
I don't think anybody is. Worrying about that, that is. People are worry that they have to make DX9 a requirement, even if it will still run on DX7 generation hardware (and thus would work perfectly well with DX7).

And they cannot blaim only you, but they must blaim every other programmer, because almost no programmer works on Win95 anymore.
It is not a matter of blame. It is a matter of not being able to sell to these people for no good reason. Elitism aside, ofcourse.

Well, considering BRL has products covering older DX version, I see absolutely no point in adding pre-DX9 support to BMAX. Why?
Well there are tons of reasons, one being that nobody wants to develop for DX7 *only*, nor are they likely to want to go back to procedural programming. The choice between DX7 vs. Mac market, is pretty much a no-brainer. (Mac market every time, incidently). However if one could do both, that would clearly be the way to go.

Why? Just think about it, if it has taken this long for Mark to get BMAX to it's current state, and now adding DX9 support, imagine how long it would take for him to add support for older (sucky) technologies that are irrelevant.
First of all, DX7 is in no way "suckier" than DX9, and second of all, it's not quite irrelevant. Oh and incidently, it takes three times as long to write a compiler as it does an application, and since BlitzMAX development time has been mostly on the compiler, I'd say "not as long as you seem to suggest".

There are still millions of Win95 machines out there and I would like to have my games run on those machines.
Yeah. What was it, 36% of everyone who downloaded 3DMark2001?

Hey, so who's gunna create a Max2D software renderer, for starters?
MildredMAX? :o>

I don't have the luxury of being able to throw sales away because my customers don't have the latest and greatest machines.
True. But not everyone using BlitzMAX is doing so from a commercial standpoint. And I can see why they couldn't care less about DX7. It's the same mentality as another product out there: Who cares if it only works on my machine and crashes randomly on everyone elses. I g07z 50m3 m4d 5h4d3rz, L0L!!!1!!

Wasn't part of the point of Blitzmax to give the people asking for fancy features access?
Well the reasons are individual I'm sure. Personally it's mostly a matter of cross platform capability and object orientation. If I wanted to mess around with the internals of the API anymore, I would be doing it in C. Why bother when a whole game in Blitz is fewer lines than setting up and opening a DirectX display in C?


AdrianT(Posted 2005) [#27]
I recon less than 5% of people make money selling Blitz3D games. And the majority of people just do stuff for fun and hope they may get somewhere. So for the majority of people, whether sucha nd such a person has 3D or not might not be a big deal.

I know that I'd much rather have DX9 than GL, but I also want to have cross platform, so I'm willing to give GL a shot.

Only problem is there are no artists tools that make full use of GL as DX9. So if anything comes along with DX9 and .FX or .HLSL that allows most of the flexiblity of blitz3D for content creation, thats where I'll probably go.

At the moment Gamebench looks interesting, but I can't see it being a contender for several months yet (assuming it works out).

At the moment I'm sticking to blitz3D and hope Bmax 3D module is good. Currently old BlitzDX7 is still the best thing out there for an indie to use (in my opinion ;)


JoJo(Posted 2005) [#28]
Its funny! When all we had was directx 7, people was screaming, WE NEED DIRECTX 8!... WE NEED DIRECTX 8!.

And then when directx 9 came out they screamed, WE NEED DIRECTX 9!... WE NEED DIRECTX 9!.

Now that BlitzMax is out and mark mentioned the 3D Module will be DirectX 9, the people are going, CAN WE HAVE DIRECTX 7 OR 8!....CAN WE HAVE DIRECTX 7 OR 8!

It seems like there is no pleasing no matter what you do.

In the words of Bill Cosby:
If you try to please everyone, you will certainly fail !

...or something like that.


FlameDuck(Posted 2005) [#29]
I recon less than 5% of people make money selling Blitz3D games.
I reckon less than 1%. But I'm probably basing it on a larger userbase than you are. There was a poll once about how many projects people had completed in Blitz. If memory served roughly 1/3 of those who took the polll answered '0'. Now I know the poll isn't representative, and thus not statistically sound, but it's an interesting (if slighly disturbing) thought none the less.

And then when directx 9 came out they screamed, WE NEED DIRECTX 9!... WE NEED DIRECTX 9!.
You'll notice that the same people who are now "screaming for DX7" as you so elegantly put it, where roughly the same people who said "Why would you want (much less need) DX9 when DX7 hasn't even been pushed to the limit yet" whenever someone came by "shouting for DX9".


GW(Posted 2005) [#30]
I'll add to that argument that those of use planning on making profitable and professional games are just screaming 'Give us ANY DirectX over opengl!'
DX7, DX9, I dont care if its DirectX PI! just give us DX.


The Caffeine Kid(Posted 2005) [#31]
@Jojo: LOL thats just so true. People were bitching and moaning for DX9 Blitz3D since DX9 came out... Maybe its a case of "be careful what you wish for, cause you might just get it. " :)


xlsior(Posted 2005) [#32]
I'll add to that argument that those of use planning on making profitable and professional games are just screaming 'Give us ANY DirectX over opengl!'

My thoughts exactly.


Michael Reitzenstein(Posted 2005) [#33]
I'll add to that argument that those of use planning on making profitable and professional games are just screaming 'Give us ANY DirectX over opengl!'

I'd say that DX9 would probably be just as bad as OpenGL; it's certainly an unnecessary compatibility waste.


N(Posted 2005) [#34]
I wonder which API will take precedence in Max3D. I'd guess OpenGL, as Mark works with his Mac primarily I'd assume and that wouldn't have much DirectX support (that's sarcasm).


Russell(Posted 2005) [#35]
Since DirectX is not available on Mac or *nix (yet?), how well does OpenGL perform on those platforms?

What I'm getting at is, it would be nice if we could come up with a solution that allow us to maintain cross-platform compatibility - one of the main reasons I bought BlitzMax in the first place. If this disappears (cross-platform uniformity), then I will be very disappointed!

Russell


N(Posted 2005) [#36]
(yet?)


Never.

As for performance, it depends a lot on the drivers you're using. Under Linux, ATI's drivers are faring not-so-well whilst nVidia's drivers are god-like (seriously, they did everything right). A quick Google could probably produce a lot of problems with either set though, as there's just no easy way to predict problems. As far as I'm concerned, ATI has a primary interest in Windows and will support their Windows drivers better and not give much thought to Linux.

Just my opinion. Anyways, I've got my GeForce 6800 Go working under Linux and it works like a charm. Everything is speedy and runs well -- I haven't compared it to the Windows speed, but I'd assume they're the same, Linux may or may not be faster depending on what modules, daemons/services, programs, etc. are running though.


Panno(Posted 2005) [#37]
give us dx 10 ! with ogl 3 !!!

sorry.... ;)


LAB[au](Posted 2005) [#38]
...or any 3D engine ;)


Russell(Posted 2005) [#39]
Mainly I was wondering how well OGL does on Mac, since they don't have many other choices as far as gfx libraries go (like DirectX)...especially where BMax is concerned. So, if programs on the Windows version of BM are running, like, 10 times faster (graphically) than the Mac versions we may have a bit of an issue...at least if you're concerned with developing software on multiple platforms with BMax.

Russell


Jeremy Alessi(Posted 2005) [#40]
I'd say that you should adapt the API for the target audience. If you're making a hardcore game then don't worry about it ... the audience has DX 9. If you're making a casual game then make it run on as many systems as possible. If BMax doesn't support one or the other then use somthing else because there are a million and one tools out there these days to help developers achieve their goals.


SillyPutty(Posted 2005) [#41]
i just hope this 3d module comes soon, whatever API it is.


Damien Sturdy(Posted 2005) [#42]
Oh, Flameduck?



Its VERY hard to find a game nowadays that doesnt require DX9, so whats the big deal?

Really? I'd hazzard a guess that you aren't looking very hard.



I purchased TheSims2 for Tracy's computer.

Guess what? It needs DirectX9 :P


Dreamora(Posted 2005) [#43]
next to any commercial game release the last 18 months needs at least DX 9.0 (the new one need DX9c).

Non commercials are something different, but they often have any representative sell amounts as well for statistical use.


FlameDuck(Posted 2005) [#44]
Guess what? It needs DirectX9 :P
Well I just went for the first game that didn't have it on the Box. :o>

Next game would be: DOOM 3 which doesn't really *need* it (although it does force you to install it anyway).

In any case, nobody is argueing that DX9 is not a problem for anyone wanting to develop AAA titles with 100+ teammembers. Because games of that magnitude is generally shipped on CD/DVD and including a 30 odd megabyte redistributable is not going to make a big difference.

But if you need a 30 meg download to play a 3 meg game, developed by one man running an independant software company, producing small enjoyable games for a more casual audience (the fastest growing one, incidently) you're not playing on the same field. Hell, you're not even in the same stadium.

next to any commercial game release the last 18 months needs at least DX 9.0 (the new one need DX9c).
Well they don't actually *need* it (as-in it being a pre-requisite), but Microsoft are aggressively pushing DX9 (as they do everything else) so it's not like most developers have a choice.


Dreamora(Posted 2005) [#45]
Sure devs have a choice.
If they use DX9 Device it needs DX9 otherwise the devs could have used DX8 devices but would have had to sacrifice the high end hardware features of new shaders for example.

And on windows there is the choice of a simple click and 10MB download for DX9 or 20-50 clicks to find the opengl driver which is normally in the range of 20-50MB ...
Beside that both are on any game related pc magazin :)


FlameDuck(Posted 2005) [#46]
Sure devs have a choice.
"Crossing swords with Microsoft" is not really a choice for game developers. Not sane ones at least. Particularly since they have nothing to gain, and so much to lose from doing so.

If they use DX9 Device it needs DX9 otherwise the devs could have used DX8 devices but would have had to sacrifice the high end hardware features of new shaders for example.
Yes. Obviously. However if they have no particular need for DX9 functionality, since 90% of their target audience does not have DirectX9 compliant hardware anyway, why would they want to make DX9 a requirement, if DX7 is sufficient?

And on windows there is the choice of a simple click and 10MB download for DX9
Where? Microsoft report the size of DirectX9c going anywhere from 35-166 Megabytes. (Not to mention it takes considerably more clicks than that to find it).

20-50 clicks to find the opengl driver which is normally in the range of 20-50MB ...
First of all "Going to your graphics cards manufacturers website and clicking on the 'download drivers' button" is not 20-50 clicks and second of all, I have yet to see any drivers that are even close to 50 Megabytes, and even if they where it would be totally irrelevant because the exact same drivers are *also* needed for DirectX9 or you'll still not have access to "high end features of shaders".

So let's go over the numbers:

Required for OpenGL: Recent graphics card drivers.
Required for DirectX9: The exact same recent graphics card drivers, plus an additional 35-167 megabyte download for an API abstraction layer.

No matter how you add up the above scores, OpenGL will always come out ahead, unless you have a recent WindowsXP SP2 installation, thus not needing to download DX9c, so you're breaking even.

So in the best case scenario you're breaking even, and in the worst case scenario (according to Microsoft) DirectX is an extra 167MB of downloads.

Beside that both are on any game related pc magazin :)
Yes. Thank you for pointing out the obvious. We've however already established that hardcore gamers do not generally encounter problems with having out-of-date drivers, and anyone else is not going to buy a game related PC magazine, particularly not to play some random game they just downloaded off the Internet.


Arcadenut(Posted 2005) [#47]

First of all "Going to your graphics cards manufacturers website and clicking on the 'download drivers' button" is not 20-50 clicks



I would just like to point out that finding drivers is not exactly the easist thing in the world at times. PNY Technologies is a major manufacturer of Video cards and other hardware, yet they do not have GL Drivers anywhere that I can find on their site.

The GL Drivers that I have on my system appear to be from Microsoft.

My next stop is looking for GL Drivers for nVida and see if there might be decent drivers that route.