DirectX 7/8.. time to get down to business

Started by
8 comments, last by eldee 22 years, 7 months ago
Alrighty folks, i''ve been playing around with directx for about a year now under both c++ and visual basic. i''ve written a few tools for 2d map/tile editing and sprite editing, along with various "screw around" type tiling engines that really didn''t do much. i think im now comfortable enough to start working on a game, but i''ve run into an interesting situation.. whilst i was screwing around with directx 7 over the last year, directx 8 comes out and totaly does away with everything i''d become familiar with. yet on the flip side, it promises me faster effects and rendering (since my 2d world would be "faked" using textures and 3d objects). so i guess my question is this: should i just keep going with directx7 or are the benefits of directx 8 enough to invest even more time into learning (while running the risk of something similar happening when directx 9 comes out)? my goals are pretty simple.. to create a ''nice'' 2d engine, nothing "commercial" by any means.. but something i could put out as "playable".. (because lets face it, there''s alot of crap out there in demo stage that isn''t even worth downloading). the 3d effects and such i could gain from directx 8 are definatly something i would be interested in, but is there a steep learning curve for someone coming from a totaly 2d directdraw 7 world? any thoughts are appreciated -eldee ;another space monkey;
-eldee;another space monkey;[ Forced Evolution Studios ]
Advertisement
My opinion:

Create a game with directx7... then go on to learn directx 8.

The technology is always changing, at the moment I would have to say you are better off actually creating than stressing about the technology you are using.

Of course on the flip side, directx 8 isn''t that hard to get to run in a 2d like mode. I wrote a 2d dx8 wrapper in about 8 hours, with no prior experience in dx8.

I think it''s more a case of you need the experience, once you have the experience you read the technical manuals (commonly known as sdk''s) and they start to make a world more sense.

Ultimately it''s up to you though.


learn dx8. Look at it this way - even if the API changes, they probably aren''t going to go BACK to dx7...

Also, newer hardware will get along the best with the "faked 2D"
Author, "Real Time Rendering Tricks and Techniques in DirectX", "Focus on Curves and Surfaces", A third book on advanced lighting and materials
I don''t know what MS was thinking with 8...oh yeah, X-Box.

For a 2D game use 7. Setting up D3D with 7 is a snap but you don''t have to do it all at once so you can test along the way. You can leave blits in to compare to make sure everything is showing up correctly.

Tombstone Vendetta went from 2D blits to 3D draw primitive in only a couple days. It uses odd shaped overlays so D3D 8 isn''t an option unless I want to waste memory.

Since the X-Box is set at 8, I wouldn''t be surprised in MS put DDraw back into 9 as (oddly enough) Windows still can use it.

I suggest writing a wrapper either way because eventually you will need to go to the next version. 7 will just make it easier to learn at this point.

Ben

[Icarus Independent | Jump Down The Rabbithole | Tombstone: Vendetta ]
Depends on the requirements,

DirectDraw has more features than D3D such as Surface-to-surface colorkeyed blitting and is pretty much 100% compatible with all PCI/AGP cards, Direct3D8 can only run on a good modern (roughly 1998 onwards) 3D Accelerator and on many cards the textures are limited to 256x256 which may result in having multiple textures for a single screen size blit such as a background. If u are a beginner, start with DirectDraw7 since its less complicated, though MS have scrapped DDraw in DX8 so maybe starting with DX8 would be a better decision.

quote:
the 3d effects and such i could gain from directx 8 are definatly
something i would be interested in, but is there a steep learning
curve for someone coming from a totaly 2d directdraw 7 world?


The advantage of 3D effects was the main reason I updated my DDraw game to D3D8, DDraw doesnt support Alpha blending and my game used alot of alpha which slowed down the game drastically since I had to use a custom alpha blit function. After a couple of weeks of learning D3DX I had my game running in D3D, its not that hard to learn, to get u started, check out my D3DXSprite wrapper guide on my site, a DDraw and D3D version of my game can be found there too, d/l them and compare the performance.


  Downloads:  ZeroOne Realm

  Downloads:  ZeroOne Realm

About the XBox...

If you think about it, the XBox is just a souped up nVidia box, so it''s basically nothing more than the current to next generation of hardware. DX8 was designed to work with newer hardware, of which the XBox is but one example.

About DDraw returning. I don''t see it happening. I can see more 2D functionality in the form of an expanded ID3DXSprite type of class, but D3DXSprite is just "faked 2D" at the core. My geForce3 does 2D edge filtering at 260fps, far faster than any of the dedicated 2D hardware that I''ve ever used, so there''s no reason for nVidia (or anyone else) to introduce a separate 2D pipeline, so there''s no reason to introduce a separate DX API. That''s why DDraw was removed in the first place. For better or worse, hardware in 3D focused, so the API should stop fighting that and teach people how to maximize the hardware.

Also, don''t forget that the general design of DX8 is very different (better). Based on the DX9 stuff I''ve seen, I don''t think there will be a major design shift soon. At this point, learning DX7 is a little like learning how to use a slide rule. It works, but it''s becoming a dead skill.

I''d say this. If you have old hardware, or supporting old hardware is a must, *maybe* you should use DX7. If you really want to be up to date and you are learning this for yourself, AND you don''t have ancient hardware, use DX8. For your own personal use, I''d say it''s worth it to by a $90 geforce2 MX rather than spend your time learning an old API. Remember, your time is worth something...
Author, "Real Time Rendering Tricks and Techniques in DirectX", "Focus on Curves and Surfaces", A third book on advanced lighting and materials
Learning a whole new API for every update!???

Oh my God.

You guys really should tryout OpenGL.

Good Luck with the workhours.

Aside from the sarcasm, that''s not a bad idea. OpenGL is great for the basics and it''s easy to move from OpenGL to DX8. Of course, OpenGL requires the dreaded "Fake 2D" (I think that''s a good thing)
Author, "Real Time Rendering Tricks and Techniques in DirectX", "Focus on Curves and Surfaces", A third book on advanced lighting and materials
Ups,

I didn''t really mean to be sarcastic in that way.
I meant it as a small friendly joke, with a twitch.

I humbly apologize to you all.

I also would like to welcome you all to the nice and friendly world of OpenGL developemnt. If you like too.

Good Luck you all in the future, I hope you can make it anyway.
thanks for all the replys guys, i really appreciate the feedback.
i think im going to try to put together a few test type games with directx 8 and see if its right for me, from what i''ve heard it shouldn''t be too hard to make the jump from 7 to 8.
also, to the OGL guy: i''ve always wanted to learn opengl but
im attempting to make a game that goes back to the roots of gaming and focus on gameplay over graphics.. the thing with
3d is that (in my opinion) you need way too many people dedicated to working on it, and people flake out. its human nature.
too many times have i seen a nice 3d game idea that looked promising and died on the runway...
heh, man.. if i knew back in 1988 what i know now, i could''ve made some killer games



-eldee
;another space monkey;
-eldee;another space monkey;[ Forced Evolution Studios ]

This topic is closed to new replies.

Advertisement