Sign in to follow this  

XNA in AAA games

This topic is 3841 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
Yes, you could probably make Halo or any other game using XNA. And in a console generation or two the XNA game would run about as quick as current Halo written in C++

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites
Quote:

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.


I'm fairly certain that zedz's original post was supposed to be a quote, although I'm not sure from where, because it conflicts with implications made by Mat Noguchi that the underlying code was at least compiled as C++ (or they faked a vtable implementation for manual dynamic dispatch).

[Edited by - jpetrie on June 5, 2007 2:28:52 PM]

Share this post


Link to post
Share on other sites
Quote:
I'm fairly certain that zedz's original post was supposed to be a quote, although I'm not sure from where, because it conflicts with implications made by Mat Noguchi that the underlying code was at least compiled as C++ (or they faked a vtable implementation for manual dynamic dispatch).

yes it was a quote, gdalgorithms list ( amazingly i remembered the conversation cause it was 5 years ago )

heres a reply from mat noguchi
Quote:

Given the target
platform (Xbox), there was no need to include a binary/text parser to
load and save game data.
....
Working on a code base developed and augmented over 10 years in
C was a lot more rewarding in terms of quality and style than any
project based in C++ I have worked on.

note im absolutely not advocating C in any way, i just wanted to correct the misinformation that halo was written in c++

Share this post


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


Then go for not-at-all. Any code that ships in a format that can ultimately be executed can be decoded/decrypted. Unless the encryption keys are held by the processor, the binary can be opened in a debugger or disassembled. Once you have the ability to disassemble the loader, you can either decode or decrypt the package that the loader will process. Once you have the package in the clear, you can proceed with normal reverse engineering.

Beyond that, obfuscators will be enough of a PITA to stop someone who doesn't have the right tools, and if they do have the right tools, it will be moments (or occasionally hours) of aggravation. If you do have something innovative enough to present a challenge, you will only attract the more competent attackers as they pick your 'protection' system apart for the fun of it.

If you are that worried about protecting your intellectual property, save the money you would spend on technology, and spend it on good lawyers instead. Sue (or at least C&D) anyone who uses your IP, and if they are in the US, file a charge under the DMCA.

Share this post


Link to post
Share on other sites
Thanks for you input. I think I'll lay off XNA, c#, managed c++ until there is clear info on this stuff. By the way I think the term cross platform shouldn't be confidently used to refer to moving from windows to xbox360 because obviously these are not the only platforms(Maybe Microsoft-Cross Platform).
Thanks.

Share this post


Link to post
Share on other sites
Quote:

I think I'll lay off XNA, c#, managed c++ until there is clear info on this stuff.

There's plenty of "clear info" on those technologies. What are you confused about? It is certainly possible to use them to make games like the ones you've listed; just because the games you listed were not made with those technologies doesn't mean much.

Quote:

By the way I think the term cross platform shouldn't be confidently used to refer to moving from windows to xbox360

You can't just redefine terms, though, so that's not going to fly. Cross platform refers to something that can be made to work on more than one platform. Not necessarily all platforms, and not necessarily without any effort.

Share this post


Link to post
Share on other sites

This topic is 3841 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

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