Brad Wardell's views about technology, politics, religion, world affairs, and all sorts of politically incorrect topics.
Why console developers have it easier..
Published on August 28, 2004 By Draginol In Game Developers
One thing that is definitely nice about console game development is that if your game works on your console, it's going to work on all the other ones.

Meanwhile, in the PC arena, the grass isn't just less green, it's weedy and full of mole holes.

At Stardock we stayed with the whole 2D sprite thing probably longer than we should have. And reviews of our games would tend to be "There's a great game under these 'dated graphics'." And oh we know where you are...the ninjas are on the way..

But the nice thing about 2D graphics is that they worked on everyone's machines. The video driver writers really can't screw up blitting a sprite. So while games like The Corporate Machine, Galactic Civilizations, etc. had "dated' graphics they pretty much worked on any machine.

After Galactic Civilizations, we decided to bite the bullet and move to 3D. 3D is MUCH nicer to code with btw. You can do things with it that not only look nicer but take a lot less time. Zooming, for instance, with very nice scaling of things as you zoom in and out is much easier with a 3D engine for instance even if the game is largely 2D in its presentation.

And for Galactic Civilizations II, we will need that 3D engine because of the ability to design your own ships from scratch and we'll want to make the end result look very seamless which is *easier* with the 3D engine.

But this stuff comes with a drawback. You're pretty much at the mercy of video card driver writers to get it right.

With 2D, it's pretty much always right because, well, if they mess that up, then Windows itself won't likely work right. But with 3D, it depends on what features get used. Example: did the driver writer implement a software T&L feature (like they're supposed to).

So what happens is the game goes out and suddenly you have people with these older budget video cards screaming bloody murder because they game won't work.

And it's that kind of thing that helps drive people to the console. Because THEY are right. The game SHOULD work on these machines.

As a developer, I find this very frustrating. Who's fault is it? Is it the developer's? We ran the game through our compatibility lab that includes machines as old as Pentium Pros with TNT cards (and the game worked on that) to various laptops. No problems. But maybe we should have worked harder?

Our assumption was that DirectX 9 took care of this stuff. It certainly claims that's the case. If the video card doesn't support some feature (like my TNT 1 card certainly doesn't support most of these features) then it's supposed to be emulated in software.

But then we find out that the video driver writers have to support this stuff. Well how does that work? If the video card came out 3 years ago (long before DirectX 9) are the driver makes expected to keep updating it? On the other hand, to use the TNT card again, that's a 7 year old card and it runs fine and I don't even have recent video drivers on it. It's running on a Win2K box with who knows what on there.

So it it the video card manufacturer's problem? In our case, the only problem we've seen are with those older Intel 82whatever chipsets. Not the newer ones (because we tested on those and it worked fine). What I found maddening is a visit to Intel's website has a long list of common games that won't work on them like Rise of Nations. Come on, how can Intel ignore that? Rise of Nations not working on their 3 year old chipset?

But customers don't *care* (nor should they) about whose fault it is. All they know is that they plunked down there $20 to $50 (depending on the game) and that it doesn't work.

And this doesn't count the people who have to upgrade to a given Service Pack or update to the latest driver to get the game to work.

I don't know what the solution to that is. I definitely have a greater appreciation now for what PC game developers go through. I can't imagine the pain that Id must have gone through.

In our case, we're going to make it a mission to work on any cards that don't support the APIs. And then we're going to document what we had to do. Because it's ridiculous.

As a consumer, it seems to me that as long as I install DirectX 9 on my machine the game..should..work.
"
Comments
on Aug 28, 2004
A reason why I like 2D... I still can't use galciv map editor with the latest directX. Is my driver too old? Maybe, but there's none better I can find. I've got a laptop, and can't change the graphics card (though NVidia has proposals that'd make it possible if accepted by the industry, namely by ATI...).
I don't think you can mod in 3D as well as you can in 2D because it takes more time to work a 3D model than to draw a sketch. You may not have to concern yourself with shadows though.
Also, there aren't really good or standard 3D cards. Most games use directX. Professional CAD software tend to use OpenGL. This doesn't help those who develop the drivers either as they must support both 'standards'. Usually, they'll support one better than the other.
Back to playing nethack anyway... Why don't you provide a roguelike mode as an option in your game? If the game doesn't run with gorgeous 3D graphics, I could still play with a nice blue @...
I'd like to say that sound cards are also a roblem. Some games wouldn't run because there's an incompatibility with the old sound card I had on my old computer. Problem is: I always play with sound off, so why should that hurt?
Why can't you make a game that degrades nicely if a function you would rely on isn't there?
on Aug 28, 2004
This is one of the primary reasons I balk at buying PC games. I'm sick and tired of them not always working well but its more than that. For me I also dislike in many games having to use the keyboard as well as a joystick/mouse. Its just too much for me (ok so I admit I'm not very talented gamewise - still I'm not alone here). I also dislike having to remember my PC's insides to know if the game has a chance of working on my machine.

Somehow they need to standardize PC's. The game companies are trying to push the envelope so much that much of the buying public is sick of it. The best games only run on the newest PC's for the most part, and the average consumer can't even remember if their PC is qualified to run the game anyway.

I understand the frustration of developers in this, but they can't fix it on their own. The whole industry I think needs to work on making it easier to pick out software and use it. Something radical.
on Aug 29, 2004
"Our assumption was that DirectX 9 took care of this stuff."
Considering that your graphical requirements are prolly going to be pretty low end, I wouldn't have advised going with dx9, dx5 would prolly be a far better idea. It prolly covers the functionality you want, and has been more completely tested than dx9.

"This is one of the primary reasons I balk at buying PC games. I'm sick and tired of them not always working well"
1) never buy the latest and greatest in the PC land if you want to avoid bugs, stick to 'mature' technology.
2) Buy from companies that are known for their reliability, even if they do not produce the fastest products.
3) Avoid pre-built systems like the plague, components that are sold as parts (IMHO) tend to have the expectation that they will be put with dodgey hw, and thus tend to be more forgiving.
4) Never buy high-end components, save the money you would have spent and then buy the same component at twice the speed, for the same price, in a years time.

"The best games only run on the newest PC's for the most part"
This is just crap, a mid-range system from two years ago will still run most of the current games at fine performance, assuming that one lowers the settings to suit.
on Aug 30, 2004
This is why I do all my games with the DX7 API. I can do alphablended sprites and fast particle ssytems with it, but as my games are basically 2D I have no need of all the fancy pants crap that has been introduced since DX7.
Leave that graphics-demo crap to the likes of id software and Unreal. I'd much rather concentrate on making a good game, not a good tech demo.
I get some people bitching at me when they have 16MB video carsd, but at least they still CAN play some of my games. They wont be buying Doom3 thats for sure.
on Aug 30, 2004
DirectX 8/9 introduce some key things that can speed up development massively:

1) True Type fonts supported directly in there. In GalCiv, we had to encode our own fonts. In The Political Machine, we could use TTFs. Makes translation easier and makes font handling mcuh easier.

2) Accelerated alpha blending. Try playing Galactic Civilizations on a Pentium Pro. Forget it. But I can do it with The political Machine even on a TNT card. Remember, we've been doing sprite based games for a good decade now. We know all about their pros and cons and the con is that they're basically not hardware accelerated.

3) Using Direct3D for doign a 2D game makes sense because you get all kinds of free acceleration. Resizing/scaling, rotation, lighting, colorization, and tons of other things all for "free" in terms of performance. Try doing that with a sprite based game. You would have to do it in software and require a much faster CPU and it still won't be as smooth.