Skip to main content
GameDev.net gamedev.net
🔒 Locked

XNA in AAA games

Started by miminawewe Jun 3, 2007 at 6:31 AM 28 replies 8.3k views
Original Post
miminawewe
miminawewe
Hi, I'm not a newbie to game dev but I'm new to XNA stuff. Is it possible to use XNA to make games in the class of Halo, Half Life, Need For Speed or Fifa? I've read that XNA is for hobbists (and people in that circle). If XNA is not good for these types of games please tell me why or direct me to an article that talks about that. Thanks.
NickGravelyn
NickGravelyn
There is nothing stopping you from making a AAA game in XNA. In fact, Microsoft would probably love you for doing so :). But the framework itself is powerful and considering how powerful the Xbox 360 is (and that XNA has access to 4 of the 6 hardware threads), I don't see why XNA on an Xbox 360 couldn't get at least to the quality of Halo on Xbox. Seems quite possible.
DaBono
DaBono
I think, if you have the resources, you could build a pretty decent game with XNA. I haven't used XNA myself, but I know that large game studios tend to want to have control of nearly anything that happens on the system (memory allocations, cache misses etc.), especially on console. Therefore I would actually think XNA would be too high-level for any studio that makes AAA-games.

P.S. 1+1=10, of course, not 11. [wink]
miminawewe
miminawewe
So in about 2 years there will be no need to buy the XBox Developement Kit(XDK)? If we still have to buy it then what does it offer that XNA doesn't? I've read that code for XNA on XBox should be 100% c# or managed c++, and that's why the old newton physics SDK had to be rewritten for XNA.
shadowisadog
shadowisadog
As far as I know you can't use Managed C++ with XNA and make games for the XBox 360. I am fairly sure that you can only use C# currently.

I don't see why you couldn't make an AAA game with XNA but to do so would require the appropriate budget and team. With such a budget it might be better to purchase the XBox 360 dev kit currently as XNA can't be used for commercial XBox 360 games (yet).
zedz
zedz
fwiw halo was written in c not c++

Quote:
There is nothing stopping you from making a AAA game in XNA. In fact, Microsoft would probably love you for doing so :)

would they? would they make money off it, if not then the answer is no
NickGravelyn
NickGravelyn
Quote:
Original post by zedz
fwiw halo was written in c not c++

I never heard that before, not that I don't believe you. Just seems weird that they'd go with C over C++.

Quote:
Quote:
There is nothing stopping you from making a AAA game in XNA. In fact, Microsoft would probably love you for doing so :)

would they? would they make money off it, if not then the answer is no


Microsoft is trying to push XNA and managed code both for gaming and Windows. It's part of their "Games For Windows" campaign where the games all share commonalities (like using the Xbox 360 controller). When the first XNA built Xbox Live Arcade game was announced, it made decent news to Microsoft. They showed it off as "what XNA could do." Now take that response and multiply it by the difference between an arcade game and a AAA game. That's why they'd be happy. It'd convince more people to use XNA.

And yes, commercial Xbox 360 projects will require XNA Professional (or whatever they wind up calling it) which will sell for a currently undisclosed price. So technically this would make Microsoft money. However, you can develop and market PC games just as you would making them in C++ using DirectX or OpenGL.

I also believe that the professional version has been rumored to support Managed C++ as well as C# so as to reduce some of the learning curve of using managed code. I've also read about the eventual inclusion of most languages into XNA at one point or another. I've seen things (little hackery, but not necessarily against any EULAs that I'm aware of) such as using Visual BASIC with XNA so it's possible. It's just a regular managed library as far as I know. It's that the IDE (Game Studio Express) only uses C# for a language as it's based on Visual C# Express.
shadowisadog
shadowisadog
Plus to play the games you need to pay Microsoft $100 a year for Live Arcade... More XNA games=more reason to get Live Arcade which gets Microsoft more money.

Promit
Promit
Quote:
Original post by zedz
fwiw halo was written in c not c++
I know for a fact that this is not true.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
NickGravelyn
NickGravelyn
Quote:
Original post by shadowisadog
Plus to play the games you need to pay Microsoft $100 a year for Live Arcade... More XNA games=more reason to get Live Arcade which gets Microsoft more money.


That's a little misworded.

You need not pay to play Xbox Live Arcade games. You purchase them with Microsoft Points and play them. You are confusing this with the XNA Creator's Club Subscription. That does cost $100 a year and enables your PC to deploy your XNA games to your Xbox 360. The only way to get the game to the Xbox currently is to use XNA Game Studio Express which doesn't pose a very consumer-friendly way of distributing Xbox 360 XNA games at the time being. That said Microsoft is working on ways for non-developers to play XNA games without this subscription, but for the time being that is the only way.

One idea (and my current strategy) is to build a game in XNA for PC (completely free to do) and when it gets close to finish, I'll get the subscription and test it on 360. XNA is about 99.9% cross platform, so I'm not worried about having to recode large parts of my game. Plus by then Microsoft will hopefully have found a nice, inexpensive way for non-developers to play XNA games on the Xbox 360.
zedz
zedz
Quote:
Original post by Promit
Quote:
Original post by zedz
fwiw halo was written in c not c++
I know for a fact that this is not true.


This isn't something I'm proud of, but the entirety of Halo is written
in C. The only C++ we use is in our PC-side editor tool.

Chris Butcher
AI Engineer | Halo
Bungie Studios
miminawewe
miminawewe
Thanks for all your input. The games that my studio is developing in partnership with another studio are going to be AAA, and because of time and money invested I needed to know about XNA. I sense that Microsoft is being cheeky about it. I don't think I'm going to use it for high end games. I also think that c/c++ is superior to c# in some ways especially if it comes to implementing complex designs, and code efficiency(I've seen some arguments about this e.g. that c# runs faster in the lattest directx than c++ code). (correct me if I'm wrong).
What about c# and managed c++ being easier to de-compile? Is this an issue?
I don't hate Microsoft but I don't like to be stuck with them in my future game projects(Just a thought in my head)
Please keep your views coming, I appreciate them!
NickGravelyn
NickGravelyn
Quote:
Original post by miminawewe
I sense that Microsoft is being cheeky about it. I don't think I'm going to use it for high end games.

Why do you sense they are being cheeky? They are trying to make a great successor to MDX that also works as an Xbox 360 API.

Quote:
I also think that c/c++ is superior to c# in some ways especially if it comes to implementing complex designs, and code efficiency(I've seen some arguments about this e.g. that c# runs faster in the lattest directx than c++ code). (correct me if I'm wrong).

It depends on your use. With PCs as they are today (and will be getting only more powerful) and the 360 being itself pretty powerful, unless you are trying to squeeze every last possible instruction out of the CPU, I doubt you'll notice the difference. C/C++ does have low level data manipulation using pointers and such, but the trade off when moving to C# is that you don't have to worry about memory management. For me at least this has cut innumerable hours off of my projects. I get to have references (pointers for all intents and purposes) without worrying about clearing pointers or deleting the memory. No more leaks.

Quote:
What about c# and managed c++ being easier to de-compile? Is this an issue?

All managed code is compiled into the CLR code which can be de-compiled. However I've read there are numerous obfuscators that take care of this problem for when you wish to ship the game.

Quote:
I don't hate Microsoft but I don't like to be stuck with them in my future game projects(Just a thought in my head)
Please keep your views coming, I appreciate them!

I can see the hesitance to get "stuck" with Microsoft, but I feel that they have a good idea of where games seem to be going. They are trying to connect the online worlds of Xbox 360 and PC gamers. They are also trying to help developers cut costs by not having to create two code bases in order to make an Xbox 360 and PC version of the same game. With XNA, the code is 99.9% cross platform so it's as simple as creating a project of the other type, dropping in your code, making those .1% changes, and compiling it. Simple.

I personally love XNA. I've been doing hobbyist game programming (to be fair a little different than AAA programming) for about five years now. I've gone through C/C++ with OpenGL and DirectX and now I use XNA exclusively. I feel that the memory management of .NET and some of the language features (properties being my favorite) simply speed up development times and help me write better code. While you don't have the memory management of C/C++, I've still been able to write some good, efficient code in XNA. I've done some work with using bezier curves as 2D terrains and calculating physics between the curves and some falling particles. It's definitely capable of doing almost anything you could do with C/C++; you'll just have to approach it differently.

I don't work at Microsoft or anything (though I wish I did *wink* *wink*), I simply think that XNA really is an amazing tool for game development. For AAA work at the current time, as long as you aren't planning on shipping within the next 6 months to a year, you should be fine as that should be long enough for Microsoft to finalize their plans for commercial Xbox 360 games using XNA. If you're just targetting PC though, you're all set right now, albeit with a few less tools and languages (I think) than the future XNA Professional will have. Also with XNA Professional, we will hopefully have access to the Live network as well as achievements.
DaBookshah
DaBookshah
Quote:
Original post by NickGravelyn
All managed code is compiled into the CLR code which can be de-compiled. However I've read there are numerous obfuscators that take care of this problem for when you wish to ship the game.


You should either do things properly or not at all. There do exist decent protection packages/encrypters for .net programs (an obsfucator doesn't count).
NickGravelyn
NickGravelyn
Quote:
Original post by DaBookshah
Quote:
Original post by NickGravelyn
All managed code is compiled into the CLR code which can be de-compiled. However I've read there are numerous obfuscators that take care of this problem for when you wish to ship the game.


You should either do things properly or not at all. There do exist decent protection packages/encrypters for .net programs (an obsfucator doesn't count).


I'm assuming when you say "you" you mean Microsoft. What do these packages or encrypters do as opposed to an obfuscator? I'm only going off what I've read in the .NET forum here and on the XNA forum. At this point I'm not worried about my stuff because I'm not distributing it. Perhaps you could elaborate on your post a little bit.
Xai
Xai
"Real-Time 3D Terrain Engines Using C++ and DirectX 9" by Greg Snook (a Bungie employee working on games in 2003 - if not HALO, then I'm guessing at least HALO 2) So I don't buy the C thing - it just could not possibly make sense to write a DirectX application in C. There is not a single thing to be gained from C over C++ except obviousness of compiler output ... and any great C++ developer can get that by simply avoiding writing code they don't understand the implications of.
NickGravelyn
NickGravelyn
Quote:
Original post by Xai
"Real-Time 3D Terrain Engines Using C++ and DirectX 9" by Greg Snook (a Bungie employee working on games in 2003 - if not HALO, then I'm guessing at least HALO 2) So I don't buy the C thing - it just could not possibly make sense to write a DirectX application in C. There is not a single thing to be gained from C over C++ except obviousness of compiler output ... and any great C++ developer can get that by simply avoiding writing code they don't understand the implications of.


Did the book specifically mention that's how it was done for Halo? The poster in this thread is from Bungie. He clearly knows what goes on there. Perhaps Greg simply wrote up the book from his experience and used C++ being the more preferred method of using DirectX and implemented it in C for Halo. Either way it's silly to argue what language Halo was written in. Fact is that it wasn't C# using XNA. That's the important part.
shadowisadog
shadowisadog
Quote:
Original post by NickGravelyn
Quote:
Original post by shadowisadog
Plus to play the games you need to pay Microsoft $100 a year for Live Arcade... More XNA games=more reason to get Live Arcade which gets Microsoft more money.


That's a little misworded.

You need not pay to play Xbox Live Arcade games. You purchase them with Microsoft Points and play them. You are confusing this with the XNA Creator's Club Subscription. That does cost $100 a year and enables your PC to deploy your XNA games to your Xbox 360. The only way to get the game to the Xbox currently is to use XNA Game Studio Express which doesn't pose a very consumer-friendly way of distributing Xbox 360 XNA games at the time being. That said Microsoft is working on ways for non-developers to play XNA games without this subscription, but for the time being that is the only way.

One idea (and my current strategy) is to build a game in XNA for PC (completely free to do) and when it gets close to finish, I'll get the subscription and test it on 360. XNA is about 99.9% cross platform, so I'm not worried about having to recode large parts of my game. Plus by then Microsoft will hopefully have found a nice, inexpensive way for non-developers to play XNA games on the Xbox 360.


Ah I stand corrected. I assumed that the $100 a year charge was the fee to connect to Live Arcade and not the Creators Club subscription. I don't currently have an XBox 360 and so I am unaware of such things.

Sorry for any confusion.
OpenGL_Guru
OpenGL_Guru
Quote:
Original post by zedz
Quote:
Original post by Promit
Quote:
Original post by zedz
fwiw halo was written in c not c++
I know for a fact that this is not true.


This isn't something I'm proud of, but the entirety of Halo is written
in C. The only C++ we use is in our PC-side editor tool.

Chris Butcher
AI Engineer | Halo
Bungie Studios


just out of curiousity why did choose C instead of going with C++ and taking advantage of classes - something i would think would make more sense for a game like Halo. also if Halo 2 was in C++ how much was it to change code around for the OOP stuff? again just curious.

heh

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.