Disable DirectX9?

New releases and general discussions.

Post » Thu Mar 06, 2008 6:22 pm

DirectX9 support is great, but without any major 3D support as of yet, I don't really see the point in using it.

If a game is going to be 2D, I might as well have it be able to run on computers that don't support DirectX9. I don't really see the need for it. Most people who are going to be playing a 2D game aren't going to be looking for the latest in graphics (and some may not even have a computer capable of such graphics).

Not to mention, the extra effects seem unnecessary for most 2D game concepts I can think of. I don't need shiny photo realistic walls in a 2D console (SNES, etc.) style platform game for example.

So, I was wondering. Could there just be an option to use plain old DirectDraw or make a game that supports everything from DirectX1 and up (sort of like the functionality BlitzPlus has)?
B
2
S
2
G
4
Posts: 153
Reputation: 1,756

Post » Thu Mar 06, 2008 6:56 pm

DirectX 9 actually makes a lot more possible than you probably realised. I do understand that for retro style games you don't really need anything special, which is why we have an SDL renderer in the works, that runs only in software. However, it won't support any of the following:

- Pixel shaders
- Motion blur
- Linear filtered rotations/scaling/positioning
- Zooming or rotating the display or individual layers
- Layer effects/opacity/filters

Even having a game with large objects, or just lots of alpha channelled objects, would run unacceptably slow without DirectX. The CPU can draw graphics, but it's pretty poor at doing it - which is why DirectX is so crucial for having good performance 2D games. Still, if all you're interested in is stuff like early console games, the SDL runtime should suit you fine and also run on more people's computers. It should be done before the 1.0 release of Construct.

Also just to note - DirectX 9 can run on pretty much any computer. You just need to run the DirectX 9 installer, and Construct games will most likely work.
Scirra Founder
B
359
S
214
G
72
Posts: 22,946
Reputation: 178,478

Post » Fri Mar 07, 2008 6:40 pm

Oh, I didn't know that. I thought DirectX9 required special hardware or at least current hardware (I mean DirectX10 does, and it requires Vista).

I didn't know it was responsible for all of the things you listed as well. In that case, I think I'll stick with it. I might need rotation effects, etc.

But I'm concerned about how games will run on slower computers that aren't up to date and probably are running on DirectX8 or even DX7 hardware or even integrated graphics.

Now that you told me, I know that DirectX9 will run on any computer... but how well does it run? I don't to cause any unnecessary slowdown on certain computers just because of DirectX9 performance (or lack thereof).

And in case DirectX9 has any effect on performance. Well, if I don't use any of the shaders or other DirectX9 specific features, will the game perform better on average on older machines?


Also, by the way, I'm not saying to disable DirectX entirely but maybe have an option to use an earlier version of it so it'll be compatible with more computers. But if that isn't necessary then never mind.

SDL sounds like a good option for making things compatible with older computers but it also looks like it loses a lot of features in the process. I'm not sure, I'll have to see what it's like when it's implemented into Construct.
B
2
S
2
G
4
Posts: 153
Reputation: 1,756

Post » Fri Mar 07, 2008 6:58 pm

Well in theory all those things can be coded in software mode without DirectX (the linear filtered rotations, zooming etc) but a lot of them would be prohibitively slow on a CPU. The graphics hardware is much much more efficient at these tasks, so if you don't use DirectX and the graphics hardware and stick to the CPU, you can end up with 1-2 FPS fairly easily with these kinds of effects going on.

Games should still run fairly well on old computers. The Geforce 2 32mb graphics card is extremely old, and can still run Construct games at a playable rate, so long as you keep to "cheap" rendering - don't zoom the screen, just scale, rotate and use alpha blended sprites. Even very old hardware can do that just fine. If you're worried about performance on very old computers, completely avoid shaders - old hardware simply won't support them even if they can run DirectX 9 games. You can, however, use some shaders, and set them up to disable if the hardware doesn't support them - see Effects in Construct.

I don't see much use in implementing an older DirectX version - once you've got DirectX 9, even very old computers can run the games.
Scirra Founder
B
359
S
214
G
72
Posts: 22,946
Reputation: 178,478

Post » Fri Mar 07, 2008 7:45 pm

[quote="machrider":1yp3wdyb]
But I'm concerned about how games will run on slower computers that aren't up to date and probably are running on DirectX8 or even DX7 hardware or even integrated graphics.

Now that you told me, I know that DirectX9 will run on any computer... but how well does it run? I don't to cause any unnecessary slowdown on certain computers just because of DirectX9 performance (or lack thereof). [/quote:1yp3wdyb]

I'm sure everyone is sick of hearing about my crappy old computer and my crappy old video card by now, but hey... it brings good news this time.

Even though I can't run Pixel Shader effects I have yet to see anything made in Construct that runs slow on my computer (with the one exception of Ashley's blur test, and that only ran crappy at 20x blur). I've run tests with hundreds of moving sprites, very large (1280px x 1280px) rotating spites, multiple layers of parallax with alpha blending and high-res sprites at 1024x768 fullscreen resolution, and it's all run just fine. The hardware acceleration covers most of the work. As long as someone has a computer that was new 5 or 6 years ago, and has some kind of graphics card in it besides the onboard video, they should be just fine for what you want to do.
Moderator
B
5
S
2
G
6
Posts: 4,348
Reputation: 10,971

Post » Fri Mar 07, 2008 8:09 pm

And the best part is that it mostly depends on how much optimized the code is not by how good your graphic card is :P but developers dont mind that becouse its only about money...
B
4
S
2
G
4
Posts: 719
Reputation: 2,938

Post » Sat Mar 08, 2008 4:52 am

Alright, I see. I guess I was thinking too much into the whole DirectX9 being used to power games like Half Life 2 aspect of things. I didn't know it was able to fare well on older computers too. Anyway, thanks I see that the concerns I had were unfounded and that I have nothing to worry about.
B
2
S
2
G
4
Posts: 153
Reputation: 1,756


Return to Construct Classic Discussion

Who is online

Users browsing this forum: No registered users and 3 guests