qrli

This is my first reaction when I installed and tried the 1.0 of XNA. To summarize my feeling: it's still 95% for XBox and no nearer to replace the old MDX 1.0. So I decided not to migrate from MDX to XNA though I want to do that very much. I feel like MDX 2 more; amen to MDX 2.

The hardest issue for me is the content pipeline, which is very necessary, but the workflow is fixed and it assumes the contents are only built before the program runs. The helper functions wrapping D3DX can only be used with types in the content pipeline. I have to utilize the full content pipeline just for generating something dynamically, of course with significant performance cost. Or I have to write those D3DX utilities my self. Currently I don't have a good idea on this.

The other annoying thing is about type names. When using XNA with WinForms, the Point, Rectangle, Color, etc. are all need to be fully qualified in many source files. Those clones in XNA are in the same namespace with other XNA types. I don't want to import those types but I have no way to avoid them. Another is about types in Microsoft.Xna.Framework.Game.dll. They're mixed with basic types in the Microsoft.Xna.Framework namespace. So if only one source file used any of those game types, that assembly has to be referenced, thus those type names are occupied and I have to avoid those names. Why not let them in their own Microsoft.Xna.Framework.Game namespace

Well, since it already released, it will mostly stay like this. Or maybe it's just "You cannot count on the first release of any software." That's all my rants.


Re: XNA Framework Rants on XNA 1.0

Flavious

Nice rant.

Do you think that it's a good replacement for MDX at this point, aside from some of the missing utility functions

I'd like to be able to play with this without having to instal VC express. Any word on when that might happen

Cheers





Re: XNA Framework Rants on XNA 1.0

Jonas Beckeman

> the workflow is fixed

I'm not sure I understand what this means (I haven't had time to install XNA yet) - are you actually saying that I can't let the user choose an arbitrary say, .x file and see it in the application Loading bitmaps with System.Drawing and copy it over to a texture should work though, I guess

(This text editor is humiliating to use, will you **please** get a new forum )





Re: XNA Framework Rants on XNA 1.0

qrli

To Jonas:
Yes, that's what I want to say.

To Flavious
Yes. I do have a VC#Express integration rant post before. I don't like the "all in IDE" mode too. But I saw in the forum there's a separate XNA Build tool which solves this.
In regards to replacing MDX, I used to think it would but now I think they're for different things.




Re: XNA Framework Rants on XNA 1.0

Jonas Beckeman

Hm, okay. Seems we won't be switching to XNA anytime soon. I'll probably look into the patterns used and maybe start using them in my own engine, so if/when XNA gets to a state where we can use it, the porting will be less difficult. Thanks for the rant, at this stage such posts are the most interesting for me!



Re: XNA Framework Rants on XNA 1.0

littleguru

You could do this, just as a walkaround:

using XnaPoint = Microsoft.Xna.Framework.Point;






Re: XNA Framework Rants on XNA 1.0

Flavious

Yes, thanks for the info, Qrli.



Re: XNA Framework Rants on XNA 1.0

Riviera Kid

i agree on this topic completely.



Re: XNA Framework Rants on XNA 1.0

Malmer

Yeah, XNA is great, but it it sucks that one can't load dynamic content with the content pipeline. Now for many games this works just fine. One can still use external files describing a scene and what content to load as long as that content is put into the content pipeline at build time. But if one wants to create a game that has user content in it. Or is mod-able How does one go about doing that

Would be nice if the content pipeline had som API:s for converting content at runtime and registering the name with the pipeline. Something like this:

(public and static)
ContentManager.Import( string fileToImport, [string nameToRegisterWith, ... importer, ... processor] )

Then one could do something like this (incomplete code offcourse):

ContentManager.Import( "mods/battlestargalactica0.01/boomer.tga", "PlayerFace" );
...
cm.Load<Texture2d>( "PlayerFace" );

 

Just a suggestion...XNA 1.1 or SP 1 maybe

 

Update:
Added it as a feature suggestion on Microsoft Connect. Go there and vote for it if you want runtime import/build for the content pipeline.

https://connect.microsoft.com/feedback/ViewFeedback.aspx FeedbackID=244881&SiteID=226





Re: XNA Framework Rants on XNA 1.0

Leaf.

Your suggestion might be useful but you don't need to build assets at run time to have 'mod-able' content. The mod maker could instead build the content and distribute ready built content, that way the end-user doesn't have to waste their time waiting for a build they can just play. The ContentManager can be customized so that you could very easily enable loading from different locations to support mods. You could even make it download pre-built content from the internet without much effort.

The content pipeline is already exposed as MSBuild tasks - using msbuild tasks you could quite easily build a packaging tool or incorporate it into your level editor and get not only the content pipeline but also a powerful build/dependency engine too. I think people are being a little short sighted and underestimating the content pipeline. Unreal games and Half-Life2 are 'mod-able' and successful games but neither of them can load a .tga at runtime (or at least they don't usually).

Cheers,
Leaf.






Re: XNA Framework Rants on XNA 1.0

Jim Perry

Good point Leaf.




Re: XNA Framework Rants on XNA 1.0

Malmer

True...good point. :-)



Re: XNA Framework Rants on XNA 1.0

Jonas Beckeman

What's needed on the client to implement your proposed pattern with MSBuild Is everything included with the default runtime (if so, no problem), or do they have to download the SDK (huge problem), or can we distribute/install those components ourselves w/o breaking any license agreements



Re: XNA Framework Rants on XNA 1.0

Leaf.

No, I dont think the XNA redist includes the content pipeline in which case its likely the only way to get those assemblies onto a machine is to install GSE, which is a shame.

A suggestion on the Connect site could be useful.

Cheers,
Leaf






Re: XNA Framework Rants on XNA 1.0

qrli

littleguru wrote:

You could do this, just as a walkaround:

using XnaPoint = Microsoft.Xna.Framework.Point;



It doesn't help. Because I have to using Microsoft.Xna.Framework to use the vectors and matrix, etc. So I have both Microsoft.Xna.Framework and System.Drawing, and the ambiguity is there even if I add using XnaPoint = Microsoft.Xna.Framework.Point.