|
djlins
|
 |
« on: December 13, 2007, 06:41:27 AM » |
|
Hi there, after following the XNA closely for a while I have always remained a firm fan of TV3D, however the XNA can no longer be ignored as it is getting to a very nice and developer friendly stage at the moment. I just read this here: http://www.computerandvideogames.com/article.php?id=177500and I can see that they say with this version (2.0) they want to bring the functionality of XBox Live to the hands of developers. I have always known that MSoft has the Live gaming community sewn up. Being able to use these communities and tools for our own purposes now makes this a very heavyweight contender to TV3D in terms of networked/online gaming. I havent heard much in the way of great reviews on the cross compatibility of games written using this, but that can only get better. Has anyone else got much experience with the XNA and can they draw any comparisons with TV3D? I have one project open in TV3D and other projects in the pipeline. I actually have one 3D gaming project that needs a cross over to parts of it running in a flash player. I am wondering if it might be worth biting the bullet and making the whole lot under the one Visual Studio Umbrella and try out the Xna and Silverlight. Hmmmm, its a good thing we have choices on tools to use, but it can also be a headscratcher on if certain tools make things better or not. L.
|
|
|
|
|
Logged
|
|
|
|
|
|
|
Zaknafein
|
 |
« Reply #2 on: December 13, 2007, 01:19:50 PM » |
|
XNA + Live : No idea. It's been in beta for a month or so, and the final 2.0 version just came out today, but I haven't tried the online functionality since it's only available (unless I am mistaken) to Creators Club members (100$ USD per year I think). Since I've concentrated on PC development before porting to XBox, I haven't bought that yet. Compatibility : From what I've seen, it's very easy to make a Windows XNA game compatible to Xbox, unless you use specific stuff like geometry instancing. Then again, the XNA team has released a dozen of samples both in Xbox and Win versions, so it's not like you're on your own. And the official forums are very active and resourceful. Comparison : TV3D is uh... a 3D engine/game-oriented graphics SDK, I don't even know how to call it anymore, but in any case it's more of an abstraction to DirectX than XNA is. XNA is really a Managed code wrapper for DirectX9, with very complete yet very low-level classes. One thing I love with XNA is that the Vector/Matrix classes and the such have EVERYTHING that DirectX offer, but available to all the intuitive C# language constructs. All operators are overloaded, most functions are instance- and static-scope, all the equivalent of TVGlobals functions are avaiable directly on an instance... Very neat object-oriented design. You can also make a "render a blank screen" app in almost the same amount of codelines as in TV3D. Probably a dozen more, but it's negligible. Most of the base code has been made for you (and properly!) in the Game assembly, so you just plug your game onto that base and extend what you want to extend. Thus you start with a very clean "mainloop" (actually Update/Draw methods) and an excellent game component framework to separate your code. I think that XNA encourages good design by the way it's made. So in that respect, it's more of a game engine than TV3D is. But TV3D allows you to do amazing things like generate a quadtree-culled landscape with splatting and everything in like 10 lines. If you're looking to make a landscape in XNA, then you have to create it, or borrow it from a kind programmer in the community... Also, everything is shader-driven in XNA. There is no fixed-function pipeline. XNA comes with two "effects" built-in, per-vertex lighting and per-pixel. It's basic, but it works for most people... if you want to go beyond that, then get ready to learn HLSL. It's necessary, but it's the way of the future, and I'm glad they made that decision. As an example, there is no Camera class in XNA. But built-in effects take a View matrix which you can construct with methods in the Matrix class. But to make things proper, you should probably make a Camera game component which fits your needs and, in the end, resembles the interface of TVCamera. That's at least a couple of days of work, then a week to debug... has to be taken into account! So all in all, if you've worked with OpenGL or DirectX directly before and can appreciate the difficulty of having to write everything yourself, then you know what to expect from working with XNA. But you have also access to C# which is a beautiful language, the .NET framework which is fantastic, and a lot of managed facilities on top of DirectX that make everything more intuitive. If you've only worked with engines/frameworks like TV3D, get ready to get your hands dirty with vertices, polygons, matrices and quaternions... But you'll find that having that much control over your application is pretty damn sweet! lets get awesome!
For enjoy. Pleasure also find many hats!
|
|
|
|
« Last Edit: December 13, 2007, 01:25:15 PM by Zaknafein »
|
Logged
|
|
|
|
|
Hypnotron
|
 |
« Reply #3 on: December 13, 2007, 01:47:25 PM » |
|
But you're forgetting that TV3D doesnt prevent you from using DirectX calls yourself when you want too. I've been doing this for a long time. TV offers the best of both worlds really. It has alot of high level functionality, but it doesnt prevent you from getting down and dirty with DX where you need too.
So as far as i'm concerned, the only real advantage is the Xbox360 support.
|
|
|
|
|
Logged
|
|
|
|
|
BlindSide
|
 |
« Reply #4 on: December 14, 2007, 03:38:36 AM » |
|
I've recently teamed up with another former TV user and have started working on our own XNA based game engine. So far, I've been really impressed with a lot that XNA has to offer - though keep in mind I'm quite used to writing my own lighting pipelines and whatnot, I did this in TV so the jump was negligible. The XNA content pipeline is different, to say the least, but so far I've found that it has its uses. There are a few caveats but for the most part XNA has been great. If you're packed for time, I'd stick with TV. TV offers a great amount of flexibility vs. usability - no need to deal with things such as camera creation and math. If you want a greater degree of freedom, however, or you'd like 360 compatibility, then XNA is the way to go. Or, you could always use an XNA-based game engine 
|
|
|
|
|
Logged
|
|
|
|
ovek
Community Member

Posts: 385
|
 |
« Reply #5 on: December 14, 2007, 07:27:30 AM » |
|
have you all noticed a trend? it seems everyone and their grandmas are now "developing an xna game engine". i bet within a year there will be a massive flood of xna based game creator systems.. things are going to change rapidly! now if only we could get sony and nintendo to adopt it 
|
|
|
|
|
Logged
|
|
|
|
|
Raine
|
 |
« Reply #6 on: December 14, 2007, 07:49:28 AM » |
|
I can see that coming. However I can see a lot of poor implementations as well... it's going to be intriguing nonetheless!
|
|
|
|
|
Logged
|
|
|
|
|
sybixsus
|
 |
« Reply #7 on: December 14, 2007, 04:28:21 PM » |
|
If you're packed for time, I'd stick with TV. TV offers a great amount of flexibility vs. usability - no need to deal with things such as camera creation and math. If you want a greater degree of freedom, however, or you'd like 360 compatibility, then XNA is the way to go. Or, you could always use an XNA-based game engine  One other factor might be system requirements. TV doesn't need anything other than DX9 to be installed. ( Depending on which flavour of TV you use, of course. ) Hopefully the latest version of XNA doesn't require the .Net Framework, as well as the XNA runtimes ( and something else? ) like the last version did. But still, it must still require at least the .Net framework, which would surely put of anyone making casual games.
|
|
|
|
|
Logged
|
|
|
|
|
darqSHADOW
|
 |
« Reply #8 on: December 14, 2007, 05:32:47 PM » |
|
There's also that minor fact that with TV3D you can sell your products w/o giving away your source code.  Oh, and we don't charge $100 / yr to be a "member" so you can use others source... Sooner or later MS will fix this, however the sooner they do it, the sooner the rest of the world will start using it. Until then its simply a toy. John
|
|
|
|
|
Logged
|
TrueVision3D Project Manager The fast and simple way of 3D development.
|
|
|
|
DarkLord
|
 |
« Reply #9 on: December 14, 2007, 05:50:33 PM » |
|
It's interesting that Microsoft said they didnt want to go down this route, i.e. create a framework for people to develop games easily, such as XNA, very interesting they have changed their tune :p I don't understand why Sony and Nintendo are not following Microsoft with their own SDK's that are easily available for people to develop games for their consoles, I think the majority of developers will switch if they did this. Playstation 3 is technically more capable than the 360 many more games are slowly coming out now for it. Nintendo DS / Wii will just be damn fun platforms to develop for when will they learn?   Indie development is the future and should be catered for!
|
|
|
|
« Last Edit: December 14, 2007, 05:54:27 PM by DarkLord »
|
Logged
|
|
|
|
|
Zaknafein
|
 |
« Reply #10 on: December 15, 2007, 01:17:20 AM » |
|
And I would like to re-iterate that you can sell commercial games for the PC with XNA, without any license restriction nor anything to pay to Microsoft.
For the Xbox it gets troublesome, like DS told. But for PC development in C#, it's definitely great.
|
|
|
|
|
Logged
|
|
|
|
|
DarkLord
|
 |
« Reply #11 on: December 15, 2007, 07:00:12 AM » |
|
I don't understand why it's different for the XBOX? The XBOX is just a glorified PC *LOL* on a serious note, why don't they just charge a small royalty fee per title sold instead of enforcing complicated licencing laws!
I really don't know how much you have to pay to develop for XBOX, but I would assume it's way too much for the average Indie developer--makes you think why cater for the XBOX via XNA if this is the case.
|
|
|
|
|
Logged
|
|
|
|
|
sybixsus
|
 |
« Reply #12 on: December 15, 2007, 10:37:08 AM » |
|
I don't understand why it's different for the XBOX? The XBOX is just a glorified PC *LOL* on a serious note, why don't they just charge a small royalty fee per title sold instead of enforcing complicated licencing laws!
Because they've already got more submissions than they know what to do with. At this point, registered XBox developers who have paid for dev machines and have games already on XBLA are waiting months and months to hear what's going to happen about their new games. They really don't need new submissions and they evidently have good reason to believe that limitting XBLA to one or two titles in each genre is making them more money. So essentially, unless you've got something so mind-blowingly good that they can't say no, they really don't have interest in encouraging new submissions. Development cost is really a non-issue. If you've got something they want bad enough, they'll lend you the dev kits. It's just that - at this stage - they have too many submissions that they really don't want very much any more. I understand the Wii is heading in this direction too. Sony are perhaps the only ones left who are not overloaded with submissions at this point, but it won't be long before they have more than they'll ever need too. So if you have anything you're hoping to get on a console any time soon, I'd make it sooner rather than later even with them.
|
|
|
|
|
Logged
|
|
|
|
|
BlindSide
|
 |
« Reply #13 on: December 15, 2007, 03:17:23 PM » |
|
Console licensing has always been different than PC licensing - to have a game on any console, the console manufacturers must give you permission. This is how MS, Sony, Nintendo, etc make their money - royalty on games.
Also, the 360 isn't merely another PC like people seem to believe. Coding on the xbox requires different strategies, as the CPU operates in a different manner than a PC processor does. It's like trying to compare a GPU and CPU.. both can often do a similar job, but how it's done varies wildly.
|
|
|
|
|
Logged
|
|
|
|
|
DavidAWinter
|
 |
« Reply #14 on: January 07, 2009, 09:40:36 PM » |
|
TV3D vs XNA 3.0 (game studio 3.0)
TV3d still wins.
XNA has the one, lone advantage of being able to create Xbox360 games. If TV3D could do that, the development team could make billions. Why? Too many problems and shortcomings of XNA.
I've been attempting to develop something useful with it for about 2 months now (just after 3.0 came out). XNA, on the surface, strikes me as useful for Pong clones and not much else. As I said, I've been attempting to use it for 2 months hand have made extremely little progress and have been thwarted at every turn. The first two months I was using TV (this goes back to about 2000) I had 3d objects rendering and the beginnings of actual game play being developed.
Why? Because XNA is designed for engineers not game designers. It's too low level. Two dozen or more lines of code to create an exceedling simple camera object when with TV you can simply initialize a single class in one line of code. The XNA developers response to this is "well we didn't want to put restrictions on the games you could make". Well neither does TV. In fact, you can make anything in TV that you can with XNA (save for 360 games) and do it in far less time.
XNA 3.0 also has some peculiar restrictions. There is no way to load a 3D mesh at run time. Yes, you read that correctly. You have to include your model at design time and then it's compiled (serialized) into a file that XNA can understand. Then it loads that from disk. This really impacts large games that would contain many, many objects and levels because every level and every object needs to be included in the project file. You can't use a game level editor because you can't select a file from disk and add it to your scene. At least, there's no native way to do that (Blade 3D seems to have that ability so they must have written their own).
Functions are hidden in strange places. To apply a texture to a mesh, you need to loop through all the ModelMeshParts of the loaded mesh, looking for the Effects Class of each mesh part, then you need to know that the .Paramater("Texture") is there and you assign it a value. This is likely because everything in XNA is shader based and you're assigning a texture to a shader parameter. They could however have done the same thing by using a .Texture = ... property and it would have been far more intuitive.
There is no built in animated mesh class (the TVActor class). If you want an animated model, you need to build the whole thing yourself. Again, the XNA developers claim this is so you're not restricted by predefined code. That's nice, but 99.5% of the developers are going to use the built in support for .X or .FBX which are Nativity supported formats and both support animation. There are a few community classes for this sort of thing, but this is something that is simply missing from the engine.
- Sky boxes? Build them yourself. - Atmosphere effects? code them yourself. - Character animations? code them yourself. - Setting a position of an object with a vector? code it yourself (yes, XNA does everything with matrix and transforms, so if you want to mesh.SetPosition(3dVector), you need to code that yourself. - Glow or other basic special effects? code them yourself.
In other words, if you have any interest in building a game, you must spend weeks to months simply building the game infrastructure to the point you could start productively building a game.
XNA allows you to make games that you can sell on the 360. That's brilliant. It's fantastic that microsoft has opened the platform a bit. But they've killed the chances of people making games with it that are anything greater than retro arcade clones due to the poor implementation.
TV3D, for the most part, is designed for game designers. Yes, you need to code your game, but you don't need to mess about with low level junk just to get started. And the nice part is that the low level stuff is there and can be accessed if and when the time comes.
|
|
|
|
|
Logged
|
|
|
|
|
Brac
|
 |
« Reply #15 on: January 07, 2009, 10:01:11 PM » |
|
[...] XNA 3.0 also has some peculiar restrictions. There is no way to load a 3D mesh at run time. Yes, you read that correctly. You have to include your model at design time and then it's compiled (serialized) into a file that XNA can understand. Then it loads that from disk. This really impacts large games that would contain many, many objects and levels because every level and every object needs to be included in the project file. You can't use a game level editor because you can't select a file from disk and add it to your scene. At least, there's no native way to do that (Blade 3D seems to have that ability so they must have written their own).[...]
There is some arcane method to dynamically compile xna content files at runtime. Sorry, but i wasn't able to dig up the link yet (will try to do that later tho) I agree with most of what you said btw.
|
|
|
|
|
Logged
|
|
|
|
|
TecnoBacon
|
 |
« Reply #16 on: January 09, 2009, 11:03:40 AM » |
|
XNA on XBOX sounds allot like Apple, I have the oppinion that this whole issue is going to be a short lived one as PC prices keep dropping. Soon thier will be game boxes with quad cpu's and high level GPU's like the 280. These boxes will run PC games and such, connect to your TV and cable/internet.
The big reason I feel this way is the fact that OPEN platforms have been the basis for rapid development and growth of our industry since I started in development in 1972 and nothing has changed that I can see (except the Exponential growth of greed of course).
EB
|
|
|
|
|
Logged
|
|
|
|
|
Zaknafein
|
 |
« Reply #17 on: January 09, 2009, 12:18:12 PM » |
|
I think David was expecting something else than what XNA is. And a part of this is probably because of the "false publicity" that MS give to XNA... announcing it as the perfect tool for hobbyists and beginners. It's not so easy to use, and it's much lower level than SDKs like TV3D. I don't like some of the base classes of XNA like their SimpleEffect or their Mesh classes, so I made my own. It's fairly time consuming, and error-prone because it's the first time I've went so low-level in my code, but it does give you much better control over what you're doing. I'm handling my own automatically-feeded semantics in my shaders now, something I can't do in TV3D. Also... - Setting a position of an object with a vector? code it yourself (yes, XNA does everything with matrix and transforms, so if you want to mesh.SetPosition(3dVector), you need to code that yourself. It's not a SetPosition, but close : Matrix.CreateTranslation(...) Everything is matrices in XNA, takes a while to get used to but it's just as fine. There is some arcane method to dynamically compile xna content files at runtime. Sorry, but i wasn't able to dig up the link yet (will try to do that later tho)
The way I do it is by invoking the MSBuild compilation process from code. I hope they make it simpler in next XNA versions...
|
|
|
|
|
Logged
|
|
|
|
|
DavidAWinter
|
 |
« Reply #18 on: January 09, 2009, 03:33:34 PM » |
|
I think David was expecting something else than what XNA is. And a part of this is probably because of the "false publicity" that MS give to XNA... announcing it as the perfect tool for hobbyists and beginners. It's not so easy to use, and it's much lower level than SDKs like TV3D. That's certainly how it was advertised. What I was expecting was VB6. What they delivered was Visual C++ 1.5. Both can do the same job, but one is infinitely more productive. Their argument is that they wanted to deliver a 'framework' to developers. Well they already had two of those. DirectX and the XDK. What I think a lot of people, myself included, were expecting was a game engine sitting on top of those. Perhaps with a run time library or the like to make it compatible with various platforms. I also think they missed the boat on the "developers" they wanted to target. Their target is hobbyists and independent developers. A low level framework is not the solution to give them. From what I've read Torque is developing a XNA 3.0 game engine (fully 3D this time). Maybe that's what people wanting to develop Xbox titles will migrate towards.
|
|
|
|
|
Logged
|
|
|
|
Albertus
Community Member

Posts: 28
|
 |
« Reply #19 on: January 09, 2009, 03:49:07 PM » |
|
I use XNA to make some physical simulation, not really a game I could probably achieve the same results with truevision3d but I like xna flexibility A Part from that , and the xbox I dont see any reason for using XNA
|
|
|
|
|
Logged
|
|
|
|
|