Sign in to follow this  
NamelessTwo

What is XNA?

Recommended Posts

What is this beast XNA? From the site: http://www.microsoft.com/xna I don't get what is going to be? They claim it will change the world. Is it true or they just make loud noise as usual? Could it mean that we will be able to program our hobby projects for XBox2, when it is released with the official MS tools (for free...)?

Share this post


Link to post
Share on other sites
To put it simply. Just another API set that will work with Windows and XBox. So the same code will work on both the console and the PC. Kind of like glut for windows. At least that is the impression I get. Maybe someone with more insight can shed a light?

Share this post


Link to post
Share on other sites
Quote:
XNA Home

Microsoft XNA is the catalyst for a new ecosystem of interchangeable, interoperable software tools and technologies from Microsoft, middleware and game development companies. By integrating software innovations across Microsoft platforms and across the industry, XNA forms a common environment that liberates developers from spending too much time writing mundane, repetitive boilerplate code. Instead, XNA frees game creators to spend their time where it matters most -on the creativity that differentiates their games.

The XNA development platform will serve as the foundation for future game platforms from Microsoft, including Windows, Xbox and Windows Mobile-based devices.

XNA

Share this post


Link to post
Share on other sites
A bit like GLUT, but I think it might also encompass things like Managed DirectX (perhaps slightly more abstracted). It will certainly cover input, sound and graphics to some extent. Oh, and Live too (so you should see Live working on the PC once the XNA games start coming out).

But yes, that web site's written in marketing speak.

Share this post


Link to post
Share on other sites
From what I have read XNA is the New DirectX System, most of Longhorn will be based on it. It will be mostly managed code, and allow for cross platform dev between XBox and Windows systems.

Also Will include the new DirectPlay system. (Fixing Security and performance problems, this is why it is deprecated)

Share this post


Link to post
Share on other sites
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:



Basically, XNA will allow the same networked game to be played across multiple platforms. For example, a person on the PC playing Halo could be on the same server as a person using an XBOX. It's pretty cool.

It's not clear whether Sony and Nintendo are going to be on-board with XNA. However, the answer is probably not. Console manufacturers like to have titles out exclusively for their hardware - XNA takes that away. Remember when Goldeneye came out for N64? That was the point when I rushed to the store and picked up a new Nintendo - just because I wanted to play that game.

Share this post


Link to post
Share on other sites
After reading and rereading the information what I understand is that XNA is an intention to standarize the HW and SW development.

Hardware level may be interesting. Say you standarize the controls connectors to... say USB or something like that, then all companies agree to use the same signaling information. Then you can use your XBox control in your Playstation. Maybe some buttons may or may not work, but player can choose which control to use.

At the SW level, I guess its not about an engine but an engine standard... just like Java Reference Documents. Say you want to develop a physics library, then you get the reference document and you program each of the functions there. Then your library can be plugged to any game and there wont be need to change a single line of code. Same with a graphics engine, you initialize your graphics output in a single line (like when you use GLUT) but internally you don't know if the HW will use OpenGL or DX, you just initialize it with a single standarized call (something like InitializeGraphics()... ) and let the standarized engine to startup the HW appropiately.

Look at it as an engine 'standar' way to do things. Thaat way your caode can be recompiled in every platform and it will work with minimal (or no) change.

Unfortunately Sony nor Nintendo have answered the call. If this is what MS has in mind, then the idea is really good and I hope MS can do it.

Now, even when the world may be better with a standar, obviously MS is here for the money. And owning a leading standar will make every other company to kneel before MS wishes, I don't think they will accept that.

But knowing MS, we can just wait more XNA in the future...

Luck!
Guimo



Share this post


Link to post
Share on other sites
:)

so if XNA is freely available and I can use it to program for XBox/Xbox 2... than I'll buy one :) because I don't play games anyway.

from my experience I think that .net programs require a more memory then the other programs. for a PC this is not a concern but won't be a problem for consoles?

where can I read about Microsoft's plans for the consoles and MDX?

Share this post


Link to post
Share on other sites
The story about that Microsoft want to be rule the consol and the pc market. They are creating a tool which is a nearly complete engine with physics, graphs, network, sound and input. Would that be good ? Absolutely. And for developers who want to develop for linux and mac? No. And that's the point. Noone will develop for that platforms. Perhaps the strong linux community can do something in the future.

I hope it will be free.

Share this post


Link to post
Share on other sites
Don't except that XNA will be a 600 mb downloadable packet for free which contains a complete graphics engine with cool physics. From what I understand before XNA is only a collection of well defined APIs. Its your responsibility to create the graphics or physics engine or if you have money you may purchase UE3, Renderware for graphics or havok for physics probably all of them will provide an XNA compatible API. So what will change in the future with XNA is that you may change the main engine from renderware to UE3 without rewriting even one line of code.

Share this post


Link to post
Share on other sites
XNA made for windows, windows mobile-based and xbox.
so whats the deal with mac,linux, etc.? if you want to develop for them, then learn opengl. just like today.
Microsoft doesn't care of every platform that is not by them.
and one of the reasons that XNA will be is that the xbox development will be easier, so the xbox games will be cheaper, and more people would like to buy and use xbox, right?

By the way, will developers have to ask for the XNA SDK?
because in the website faq them says that the access will remain the same as the current DirectX and Xbox SDKs access..

Share this post


Link to post
Share on other sites
Quote:
Original post by pex22
so the xbox games will be cheaper


Only in a perfect world [wink].

Quote:

By the way, will developers have to ask for the XNA SDK?
because in the website faq them says that the access will remain the same as the current DirectX and Xbox SDKs access..


The XBOX SDK will be as secret and exclusive as it is now. Unfortunately, that means no public distribution.

Share this post


Link to post
Share on other sites
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:



Basically, XNA will allow the same networked game to be played across multiple platforms. For example, a person on the PC playing Halo could be on the same server as a person using an XBOX. It's pretty cool.

It's not clear whether Sony and Nintendo are going to be on-board with XNA. However, the answer is probably not. Console manufacturers like to have titles out exclusively for their hardware - XNA takes that away. Remember when Goldeneye came out for N64? That was the point when I rushed to the store and picked up a new Nintendo - just because I wanted to play that game.

Hehe..

Anyway, this is a great thread for in the Forum FAQ!!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by pex22
XNA made for windows, windows mobile-based and xbox.
so whats the deal with mac,linux, etc.? if you want to develop for them, then learn opengl. just like today.
Microsoft doesn't care of every platform that is not by them.
and one of the reasons that XNA will be is that the xbox development will be easier, so the xbox games will be cheaper, and more people would like to buy and use xbox, right?

By the way, will developers have to ask for the XNA SDK?
because in the website faq them says that the access will remain the same as the current DirectX and XBox SDKs access..


One of the the problems with Microsofts architecture in game development is you have no idea if they will change their mind in 2 years. Look how many features have been phased out or deprecated. In the DirectX 9.1 c manual they refer to the X file format as legacy, they are trying to phase out 50% of the original API.

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.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster

One of the the problems with Microsofts architecture in game development is you have no idea if they will change their mind in 2 years. Look how many features have been phased out or deprecated. In the DirectX 9.1 c manual they refer to the X file format as legacy, they are trying to phase out 50% of the original API.



Is there DX 9.1c? All I know is the latest summer update 2004 (I think)

Share this post


Link to post
Share on other sites
As I understand it XNA is simply a standardization of DirectX and other microsoft gaming API's across platforms (PC/XBOX/Pocket?) which will allow games to run anywhere with simply flicking a switch a re-compiling. I believe it will allow things like PC games getting onto XBox Live and such.

Share this post


Link to post
Share on other sites
BTW, what do you think about XBox2? Is it going to outperform the PC for many years to come?

If Xbox2 is let's assume 2x faster (not even thinking about more) than a common PC. Is it going to be worth porting games from the console to the PC?

If hardware performance is too different I doubt that MS claims are going to make any real sense. Do you know more about this issue?

Share this post


Link to post
Share on other sites
What's the deal with Microsoft? They're making XNA and WGF (I think that's the abbreviation) which both use advanced 3d features that will replace DX as what they're pushing. They just came out with MDX and don't even have good documentation yet!

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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).

Share this post


Link to post
Share on other sites
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?)

Share this post


Link to post
Share on other sites
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 stuff

public:
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this