Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

DirectX and bugs?

triCritical

Erudite
Joined
Jan 8, 2003
Messages
1,329
Location
Colorado Springs
I do a lot of my programming on Linux and Unix machines so I have not had too much experience with DirectX. Furthemore, I aware of numerous bugs in Miscrosoft development libraries such as MFC and MSDN.

Could it be that DIrectX is one of the largest contributing factors to buggy games? Could it be that having MS QA your games helps a bit in getting games right? Before DirectX people would have to build their own libraries to interact with hardware, framebruffers and what not... Sure this was a lot of work, but games seemed to be a whole lot more stable. Furthemore, the fact that drivers keep changing and at times are buggy themselves does not help matter.

Maybe DirectX hurts more then it helps. Now people use these pseudo high level API's and C++ and maybe are not really sure of what they are doing?

Just some food for thought.
 

Elwro

Arcane
Joined
Dec 29, 2002
Messages
11,747
Location
Krakow, Poland
Divinity: Original Sin Wasteland 2
You might be right. But writing your own libraries would increase development time, which could lead to some even more tragic releases forced by publishers. That being said, I fondly remember the days when the authors really tried to release a bug-free game - because there was NO POSSIBILITY of patching it. And now? "OK, let's send it to shops; we'll have the customers check if there are any bugs left".
Another problem is that it seems to me that programmers think nowadays "Hey, what's optimization for? They'll buy better PCs!" and don't even try to FreeMem frequently enough.
 

Psilon

Erudite
Joined
Feb 15, 2003
Messages
2,018
Location
Codex retirement
Well, MSDN isn't really a programming library, though it's sometimes maddeningly incomplete. Framebuffer manipulation isn't really something anyone does these days either, as even sprite games generally use texture-mapped polygons in lieu of actual bit twiddling. DirectDraw's been deprecated for a reason.

I haven't seen too many MFC-derived games either, though admittedly most of the commercial game engine code I've seen is Quake-derived. Say what you will about the games, but John Carmack does know how to write quality cross-platform code.

One big problem is with the current upgrade cycle in graphics cards. NVidia and ATI are so desperate to beat each other to market with the latest features that they don't always test the drivers fully. Compound that with today's emphasis on eye candy forcing developers to throw in every new D3D feature, and the already-stressed QA departments simply can't catch everything. When I got UT2003, saw the "NVidia: The Way It's Meant to be Played" logo, and then saw the (admittedly README-documented) new-driver-induced visual glitches, I laughed my ass off. The BioRifle models (though not the shots) seemed to have black sludge, the "shiny armor" effect on Malcolm in the intro looked more like a permanent full-body shield belt...

Another huge problem is SecuROM and other "copy prevention" schemes. THEY DON'T WORK. The time between release and GameCopyWorld is practically nil. If you want anti-piracy, authenticate over the Internet. Schemes like SafeDisc don't work technically for three reasons:
  • Incompatible CD-ROM drives. These companies never test on the full array of drives available--how could they?--and it shows. Legit copies just won't work on some CD readers, and laptop users especially can't upgrade.
  • Buggy loaders. The developers are generally testing the main executable only until the very end. Then, when you encrypt-and-wrap with SecuROM, you're now relying on the memory management behavior of yet another program. In order to defeat the "bait and switch" behavior of passing the CD check and then handing the disc to the guy next door, these things keep themselves in memory and check periodically. Like that's a recipe for stability.
  • As I said, the executable is still on the disc somewhere. With a sufficiently powerful debugger and copious spare time, you can fool the loader into bypassing the CD check. Once you break one or two titles using a particular scheme, it's not hard to nail every title using that version. It's an arms race Macrovision and Sony cannot win.

The main problem, though? The only type of cross-platform code devs write themselves is X-Box/WinXP. Seriously. Drop Direct3D, as it's MS-only and still somewhat unstable when doing the advanced stuff. Instead, go with SDL, OpenGL and the standard extensions (perhaps allow the vendor-specific ones, but make them optional), and then make sure the damn thing works on MacOS or Linux. Good code is almost a prerequisite for portable code, and any memory allocation problems are probably going to blow up immediately on a new architecture. Besides, the reputation boost you get on places like Slashdot is immeasurable and helps when other developers consider licensing your engine.

Oh, and one more thing: provide debugging logs when you crash. It's the only way to know precisely what's going on at the moment of truth and fix it.

Seriously, I've never had more than two crashes on any game with full MacOS or Linux ports. That ranges from shareware titles like Geneforge 2 (and I was in the beta) and Escape Velocity Nova to big-name stuff like WarCraft III, UT2003, and Quake III.
 

taks

Liturgist
Joined
Oct 31, 2003
Messages
753
good post, psilon... you hit the nail on the head with several key points.

microsoft is trying so hard to implement some proprietary code base with direct x and then billing it as the end all be all of 3d programming when in fact, it is quite the opposite. pure opengl games always tend to turn out better, imo. of course, as long as microsoft has such a stranglehold on the consumer market, people will always believe D3D is better and look for D3D games on the shelves... i'm not sure how to get around this one.

i also wonder who it is that keeps purchasing the securom, et. al., software for their published games without finding out how well such tactics work. sure, it will keep joe average gamer from warezing the game, but joe average gamer doesn't warez games anyway simply because he doesn't know how. the guys that do, get the game copy world fix immediately anyway (or a crack that's available usually BEFORE the release of the official game... duh). all that securom does is create added cost for the publisher/developer and create endless headaches for the consumer. kind of a no-brainer there... i suppose the suits that make the decisions at gaming companies aren't really tech savvy which may explain their knee jerk responses... oh well.

mark
 

Psilon

Erudite
Joined
Feb 15, 2003
Messages
2,018
Location
Codex retirement
I was at an IGDA meeting a few months ago and asked that very question of the night's speaker. The guy's response (he's a senior producer) was that the European retailers demand such measures. As a result, the devs are basically forced to put this shit in since the customer losses due to crappy protection schemes are generally lesser than the customer losses due to a lack of European retailers.

That said, I'd like to applaud Stardock for not protecting Galactic Civilizations, a single-player game distributed on CD, and sticking with online authentication for all patches through Stardock Central. It's a welcome change.
 

triCritical

Erudite
Joined
Jan 8, 2003
Messages
1,329
Location
Colorado Springs
Psilon said:
That said, I'd like to applaud Stardock for not protecting Galactic Civilizations, a single-player game distributed on CD, and sticking with online authentication for all patches through Stardock Central. It's a welcome change.

Well could part of this be due to the fact that the game was also available for download. I believe it was even though, I bought the CD. However, I do have a complaint about Stardock's method, in that it is too damn difficult for novices to use their system. I suffer from A.D.D and have not had the patience to figure out how to download the expansion pack. I want it but I don't want to learn a new technique in Window's computing to download it. Speaking metaphorically of course, but it still is reather cumbersome.

The main problem, though? The only type of cross-platform code devs write themselves is X-Box/WinXP. Seriously. Drop Direct3D, as it's MS-only and still somewhat unstable when doing the advanced stuff. Instead, go with SDL, OpenGL and the standard extensions (perhaps allow the vendor-specific ones, but make them optional), and then make sure the damn thing works on MacOS or Linux. Good code is almost a prerequisite for portable code, and any memory allocation problems are probably going to blow up immediately on a new architecture. Besides, the reputation boost you get on places like Slashdot is immeasurable and helps when other developers consider licensing your engine.

I have always thought this myself. My only guess why people continue to use D3D is because its a lot flashier, and it offers a lot of bells and whistles that are not commen place among GL programmers. I have never worked with D3D, but I have looked through my coworkers D3D book and it seems to have a lot of neat stuff in it, although I don't know how terribly practical it is. Perhaps its like you said, developers like to be so cutting edge that they need the latest gizmo's in their games.

One big problem is with the current upgrade cycle in graphics cards. NVidia and ATI are so desperate to beat each other to market with the latest features that they don't always test the drivers fully. Compound that with today's emphasis on eye candy forcing developers to throw in every new D3D feature, and the already-stressed QA departments simply can't catch everything. When I got UT2003, saw the "NVidia: The Way It's Meant to be Played" logo, and then saw the (admittedly README-documented) new-driver-induced visual glitches, I laughed my ass off. The BioRifle models (though not the shots) seemed to have black sludge, the "shiny armor" effect on Malcolm in the intro looked more like a permanent full-body shield belt...

This is another big issue that I didn't bring up. Its kind of funny because I used never by ATI cards because they were always known for poor drivers. But it now seems everyone is writing poor drivers. Not just the graphics cards, but for all hardware, from WDM devices to sound cards. six sigma for all. :D

taks said:
i also wonder who it is that keeps purchasing the securom, et. al., software for their published games without finding out how well such tactics work. sure, it will keep joe average gamer from warezing the game, but joe average gamer doesn't warez games anyway simply because he doesn't know how. the guys that do, get the game copy world fix immediately anyway (or a crack that's available usually BEFORE the release of the official game... duh). all that securom does is create added cost for the publisher/developer and create endless headaches for the consumer. kind of a no-brainer there... i suppose the suits that make the decisions at gaming companies aren't really tech savvy which may explain their knee jerk responses... oh well.

Whats interesting is that I purchase all the games I play, and I have to end up finding a warez version of a game I bought just because the game normally works better without this securerom version. Ifs its not framerate drops its the annoying CTD's. I too, wish developers would reconsider their stance on secureRom.
 

Psilon

Erudite
Joined
Feb 15, 2003
Messages
2,018
Location
Codex retirement
ToEE was available for download as well--as was Uplink--but I'll certainly concede the point. Note, however, that the few indie developers who sell retail don't go for the copy protection schemes. As for GalCiv, did you go through Stardock Central? I just clicked 'update' and got the Expanded Universe pack automatically.

Direct3D is, I'll admit, somewhat faster than vanilla OpenGL, but the standard extensions make the speed difference negligible. Add in the lazy do-everything-in-DirectWhatever thinking and mandated bells-and-whistles, and I can see why D3D is more popular.

Finally, I agree with you on the cracked EXEs. I won't bug the useless tech support forums if I'm running the (ahem) patched version, but I generally experience far fewer problems. The whole point of large hard disks is to install the damn game, and those users with laptops can't always hook up an external optical drive just to slay a few monsters between flights.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom