What is XNA?

Started by
24 comments, last by circlesoft 19 years, 7 months ago
Quote:Original post by circlesoft
This question has been asked a lot lately (probably because MS just can't seem to give a clear definition of what it is, exactly), so I have made a little diagram:

<removed the pic>

Basically, XNA will allow the same networked game to be played across multiple platforms.

Yes, but so will The TCP/IP protocol. ;)
It doesn't really answer the question of what it *is*.

The way I undestand it, it's basically a multiplatform DirectX. Instead of just standardizing and abstracting PC hardware, it'll encompass XBox2 (and XBox?) and possibly other consoles too. That's just how I read it. Would be nice if anyone actually *knew* exactly what it's supposed to be.

Codemonger: One of the big points about DirectX is that they *don't* remove old features. They add new ones, yes, and they might try to phase out old ones, in the sense of saying "Please don't use this", and telling the hardware manufacturers "You don't need to support this feature at top performance", but the features are still there, and they still work.
Advertisement
Quote:Original post by Anonymous Poster
This is not good, how can you rely on their technology as a standard when it continually changes and it doesn't evolve, it gets removed! it's the fact that you cannot rely on Microsoft to be able to plan for the creation of an engine for your game if it is based off of their technology that drastically changes from one year to the next. Who knows what features XNA will have, maybe it will make everyones existing code worthless.

Change is good, but drastic change is worthless.
This is tough. Over the past couple years, you have seen a migration from applications that utilized the FFP (fixed-function pipeline) exclusively, to applications that utilize the PP (programmable pipeline) exclusively. The changes in the graphics API are the result of this (as well as the GPUs evolving, of course). Starting with Direct3D 8, the focus was shifting away from the FFP to the PP.

I understand what you mean with the API's always changing (and being deprecated), but at the pace that GPUs are moving (along with other technology), it's necessary. Be prepared for more of it, too. Unifying vertex and pixel shaders, the development of XNA, Longhorn/Avalon and DX10/Next, and all the other new stuff MS has up their sleve is certainly going to change things (probably much more than the DX7->DX9 changes you have seen).
Dustin Franklin ( circlesoft :: KBase :: Mystic GD :: ApolloNL )
Quote:Original post by Spoonster

Codemonger: One of the big points about DirectX is that they *don't* remove old features. They add new ones, yes, and they might try to phase out old ones, in the sense of saying "Please don't use this", and telling the hardware manufacturers "You don't need to support this feature at top performance", but the features are still there, and they still work.


But for how long? Will I be able to play Diablo in 100 years on Windows MEX? Or Half-life 2 in 1752 years on a quantum computer with Windows CRASHX?




:) SO if XNA would be multiplatform DirectX, could it mean that there might be "managed directx" for Linux? :) and the same games run on Windows as well as on Linux without a change (as it is supposed to be?)
Another nameless person in the virtual space...
Quote:Original post by Spoonster
Yes, but so will The TCP/IP protocol. ;)
It doesn't really answer the question of what it *is*.

The way I undestand it, it's basically a multiplatform DirectX. Instead of just standardizing and abstracting PC hardware, it'll encompass XBox2 (and XBox?) and possibly other consoles too. That's just how I read it. Would be nice if anyone actually *knew* exactly what it's supposed to be.
Right. Kinda. It's not a DirectX, per-se.

XNA will define the common interfaces for the major game engine components. These components include graphics, input, sound, networking, physics, and AI. It will be up to you to either implement these interfaces, or to use some third party software (ie Renderware for graphics or Havok for physics).

Consider this mock-up of the graphics interface:
class IGraphics{public:   virtual HRESULT Initialize() = 0;   virtual HRESULT RenderEntity() = 0;   virtual HRESULT Release() = 0;};class CPCGraphics : public IGraphics{private:   // Platform-specific stuff   HRESULT CreateWindow();public:   HRESULT Initialize()   { // Implementation }   HRESULT RenderEntity() { // Implementation }   HRESULT Release()      { // Implementation }};class CXBOXGraphics : public IGraphics{private:   // Platform specific stuffpublic:   HRESULT Initialize()   { // Implementation }   HRESULT RenderEntity() { // Implementation }   HRESULT Release()      { // Implementation }};


In this case, the game would have direct access to the IGraphics interface. You would be able to intialize, render, and release with the graphics system, without having to worry about which platform you are operating on.

I'm not sure how accurate this is (I have no knowledge of the specific XNA implementation), but it seems to be what MS is describing to us.

Since all of these interfaces have been abstracted, your game code doesn't actually have to know the details of the current operating system. That means you won't have to re-write your engine's code for each platform.

This presents us with another problem. Sometimes, different platforms just do things differently. For example, PC graphics hardware prefers to render in a few large batches. However, PS2 graphics hardware needs to render in many small batches. This is a problem, because the game code is supposed to be unified, but a certain aspect of it must be handled differently because of hardware specifics.
Dustin Franklin ( circlesoft :: KBase :: Mystic GD :: ApolloNL )
Quote:Original post by Spoonster
Quote:Original post by circlesoft
This question has been asked a lot lately (probably because MS just can't seem to give a clear definition of what it is, exactly), so I have made a little diagram:

<removed the pic>

Basically, XNA will allow the same networked game to be played across multiple platforms.

Yes, but so will The TCP/IP protocol. ;)
It doesn't really answer the question of what it *is*.

The way I undestand it, it's basically a multiplatform DirectX. Instead of just standardizing and abstracting PC hardware, it'll encompass XBox2 (and XBox?) and possibly other consoles too. That's just how I read it. Would be nice if anyone actually *knew* exactly what it's supposed to be.

Codemonger: One of the big points about DirectX is that they *don't* remove old features. They add new ones, yes, and they might try to phase out old ones, in the sense of saying "Please don't use this", and telling the hardware manufacturers "You don't need to support this feature at top performance", but the features are still there, and they still work.


I've been programming DirectX for a long time , I know they don't actually physically remove the features. The dll's from long time ago are still part of the runtime files distribution. But if its not in the manual, as far as I'm concerned it's been removed. This is too bad because it brings the question that "if they are not going to support it, why would I wan't to? ". A lot of people rely on the direction of DX to make future plans for their game or engine. Like i said this is difficult when each version of DX doesn't just evolve, it completely mutates ... you just don't know what will be in store next. I think in this respect OpenGL offers a more stable rendering platform.
-------------Become part of developing the specifications of a new language. Visit CodeBASIC.org
Also, just for clarification: XNA will *not* be ready for XBOX2. XBOX2 is slated for a Christmas 2005 release, and XNA isn't even slated for a release yet. IIRC, it's beta period will be closer to post-Longhorn.

The hardware performance gap shouldn't be an issue. If anything, the common PC will be outperforming the future XBOX. A decent gaming PC kicks the crap out of an XBOX today, considering it has more CPU power, more memory (both graphics and system, by a lot), and better graphics hardware. Hopefully people still aren't using those evil GeForce 420/440 MX's at that time [smile]
Dustin Franklin ( circlesoft :: KBase :: Mystic GD :: ApolloNL )

This topic is closed to new replies.

Advertisement