Thread: DriectX SDK or XNA ?

  1. #1
    Registered User
    Join Date
    Oct 2008
    Posts
    85

    DriectX SDK or XNA ?

    which of these is now the way to go. i read somewhere that DirectX is "no longer supported" ? and XNA should be used instead because of its cross platform abilities to Xbox 360.

    I was under the impression DirectX was still usable but looking at the latest SDK help it is branded with XNA everywhere.

    any thoughts - suggestions - comments ?

    cheers

  2. #2
    Registered User valaris's Avatar
    Join Date
    Jun 2008
    Location
    RING 0
    Posts
    507
    XNA is built on top of DirectX. DirectX is used everywhere, especially in the majority of games, and I believe now vista is drawn with directX instead of the gdi, as well as wpf.

  3. #3
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    The DirectX SDK is certainly not deprecated or unsupported. XNA is the C# version of the SDK which if your statement were true would indicate that Microsoft is forcing everyone to develop in C#. While they may envision this someday it has not yet happened. Professional games are done in C++ and will be for some time in the future. XNA is great for C# and you can do a lot with it but if you want raw unmitigated power and thus tons of responsibility you should use C++ and the DirectX SDK. If you want something quick and simple with an existing framework and little hassle then you should use XNA.
    Both are plenty powerful for what you will need to do. However for hard-core resource intensive, render intensive, and frame sensitive games you will require C++ and the DX SDK.

    I use C++ for games and engine. I use C# for tools and editors.

    There are portions of previous SDKs that are now deprecated if you are using C++:
    • DirectMusic
    • DirectShow
    • DirectPlay
    • DirectInput (although no substitute has yet been released for C++)


    Alternatives to DirectMusic are DirectSound, Ogg Vorbis, OpenAL, and others. Under Vista I highly recommend you use OpenAL since it supports extensions and 3D sound. User extensions, 3D sound, and hardware sound acceleration were ripped out of Vista. A step backwards if you ask me.

    DirectShow is now more a part of the Windows SDK (formerly the Platform SDK).
    DirectPlay was completely removed since almost no one was using it.
    DirectMusic was removed mostly because of the same reason.
    DirectInput has not been removed but will be replaced by XInput which I'm sure isn't much different. I don't look for major changes here.

    DirectX 11 is due out soon and then you will see a new SDK release about every 6 months. It used to be every 3 but I think they said it was too difficult so they pushed it out to every 6 months.
    Last edited by VirtualAce; 12-16-2008 at 10:48 PM.

  4. #4
    Registered User valaris's Avatar
    Join Date
    Jun 2008
    Location
    RING 0
    Posts
    507
    Did they depricate DirectDraw as well? C# intellisense shows it as deprecated on its managed version 9 port.

  5. #5
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    Here is more information:
    http://en.wikipedia.org/wiki/DirectX

    DirectDraw has been deprecated since DirectX 7. If memory serves me right DirectDraw and Direct3D were merged into DirectGraphics in DirectX 8. The effects framework was also introduced in DirectX 8. DirectX 9 improved the D3DX library a bit and added vertex declarations in preparation for DirectX 10.

    I'm unfamiliar with XNA (formerly Managed DirectX) releases since I do not use it as a primary resource for my game projects.

    Most of DirectX has now been collapsed into Direct3D. It really has become a superlative graphics API while other portions have been slowly removed. DirectX is a superset of all the components but most of the components are being slowly removed. Direct3D is still widely supported and will be for a long time. I do not know about XNA but if serious developers do not get involved I'm not so sure it's just a fad.

    Until a dev house is willing to risk a lot by switching to a new language when they may have an in-house engine that already works in C++ and create a hit AAA title I don't see XNA or XNA professional doing anything in the near future. I could see a mix of C# and C++ since it's not all that hard to interface the two.

    Myself I would not care since I like C# well enough to use it everyday and always enjoy using C++. A mix of the two would not be out of the question for me and I have mixed managed and unmanaged code in recent projects with little trouble. Remember that most who are pushing C# to the point of pushing C++ out and vice versa usually have a hidden agenda. Languages are tools and the use of one does not eliminate the use or need of another. This is a bit short sighted and boils down to industry hype IMO.
    Last edited by VirtualAce; 12-16-2008 at 11:20 PM.

  6. #6
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    I do believe, however, that DX11 will introduce Direct2D and DirectText (or something similar).
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  7. #7
    Cat without Hat CornedBee's Avatar
    Join Date
    Apr 2003
    Posts
    8,895
    If you want to develop for the XBox, I believe you're stuck with XNA, because getting a C++ XBox dev environment costs something in the high five-digit dollar ranges.

    But why would you?


    DirectX's status is a mess, if you ask me. Unfortunately, OpenGL's status is a mess too, albeit of a different kind. DirectX feels highly unstable. (They deprecate DirectInput before offering a replacement? What drugs are they on?) OpenGL is in committee coma - OpenGL 3.0 should have been a complete overhaul of the API, but ended up being a minor update.
    All the buzzt!
    CornedBee

    "There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
    - Flon's Law

  8. #8
    Registered User
    Join Date
    Aug 2008
    Posts
    188
    i did an XNA project for my software engineering course back in school, and gotta say i was impressed. it's very easy to get your first game going. i forget the exact details, but i remember this guy demoing a race car game, completely 3D graphics and everything which looked beautiful, and he wrote it in a week with XNA.

  9. #9
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    ...And it probably took a huge speed hit due to being compiled as C#...
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  10. #10
    Registered User
    Join Date
    Aug 2008
    Posts
    188
    Quote Originally Posted by Elysia View Post
    ...And it probably took a huge speed hit due to being compiled as C#...
    see for yourself
    http://www.youtube.com/watch?v=TgChURF5fQE

    i will never argue that C++ isn't faster than C#, but that doesn't mean C# can't get near C++ performance with much less development time required. as you can see in this demo video, graphics look good, and game speed is great too.

    <rant>C++ is fast as hell at runtime, but it's slow as hell at compile time, especially linking.</rant>

  11. #11
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    C# can never beat C++ in speed and will never get on equal footing with optimized code. My point was that C# is unsuitable for games (Because it's too darn slow! Microsoft, are you blind?!), and I stand by that.
    Yes, compiling takes a lot of time - that is indeed a shame, but better so than consuming runtime, instead.

    <rant>C# is utterly crap.</rant>

    Now, why couldn't Microsoft just extend C++ with some gaming libraries instead of their stupid C#?
    If it continues like this, the 360 will lose against the PS3, but not because of inferior hardware, but because of an incredibly stupid Microsoft who chooses to have game devs use C# instead of C++ to create games.

    Oh, and as for the time it takes... well, that just means Microsoft's native libraries aren't what they are supposed to be. They focus on the managed ones instead of the native ones.

    <rant>The world is slowly sliding towards Oblivion these days, it seems. Everywhere it's talk of managed. Managed, managed, managed, managed, managed, managed, managed. It's all I hear.</rant>
    Last edited by Elysia; 12-17-2008 at 12:12 PM.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  12. #12
    Cat without Hat CornedBee's Avatar
    Join Date
    Apr 2003
    Posts
    8,895
    If the game runs smoothly, who are you to complain?

    Now, why couldn't Microsoft just extend C++ with some gaming libraries instead of their stupid C#?
    Because XNA is primarily aimed at amateur developers, so they chose the easier language.

    but because of an incredibly stupid Microsoft who chooses to have game devs use C# instead of C++ to create games.
    As if any big game company would use XNA to develop their commercial games.
    All the buzzt!
    CornedBee

    "There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
    - Flon's Law

  13. #13
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Quote Originally Posted by CornedBee View Post
    If the game runs smoothly, who are you to complain?
    Just because if it's C#, it makes my blood boils in furiousness at Microsoft's (and possible the company's) foolishness.

    As if any big game company would use XNA to develop their commercial games.
    <rant>Yet Microsoft charges more for a C++ devkit than a C# devkit? Ridiculous.</rant>
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  14. #14
    Registered User
    Join Date
    Aug 2008
    Posts
    188
    Quote Originally Posted by Elysia View Post
    Now, why couldn't Microsoft just extend C++ with some gaming libraries instead of their stupid C#?
    If it continues like this, the 360 will lose against the PS3, but not because of inferior hardware, but because of an incredibly stupid Microsoft who chooses to have game devs use C# instead of C++ to create games.
    well, i wouldn't say that. XNA is a wrapper around DirectX just as .NET is a wrapper around Win32, so you would need to improve the underlying components if the wrappers are to be any good.

    as for the pushing XNA, it makes sense for a business standpoint. charge the gaming companies a big license fee because they can afford it, and give the recreationalists XNA for free. this has created a pretty big homebrew community.

  15. #15
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    I would not call dotNet a wrapper.
    And yet, making a game in C# is easier than in C++, why exactly, if XNA is merely a wrapper?
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Flex 3 SDK on Kubuntu
    By sean in forum Linux Programming
    Replies: 3
    Last Post: 12-12-2008, 06:41 PM
  2. DirectSound header issues
    By dxfoo in forum C++ Programming
    Replies: 0
    Last Post: 03-19-2006, 07:16 PM
  3. Win32 API or Win32 SDK?
    By jverkoey in forum A Brief History of Cprogramming.com
    Replies: 2
    Last Post: 07-20-2005, 03:26 PM
  4. Question..
    By pode in forum Windows Programming
    Replies: 12
    Last Post: 12-19-2004, 07:05 PM
  5. Directx SDK Documentation
    By Zoalord in forum Game Programming
    Replies: 4
    Last Post: 05-08-2003, 06:07 AM