views:

582

answers:

6

Is C# an appropiate language to develop advanced games using XNA?

+2  A: 

You can produce any game you want with XNA.

2D or 3D.

As for 'advanced' it depends what you mean. As far as performance goes the stuff you want to do should be possible in XNA - ignore the fact it is not used commerically as there have been some splendid examples of how powerful XNA is.

As for C# - I find personally find it to be my favourite language at the moment. Very clean and works nicely for game programming. XNA works a treat with it too as mentioned already.

Edit:

Yes, I have produce FPS style games and the likes with C#/XNA.

Tools

On a side note, XNA with C# is a great platform for implementing tools used in game production. Speed/Performance is less of a concern with a nice rapid environment with nice GUI being the main concern both of which XNA give you.

Finglas
+3  A: 

Yeah, its appropriate.

C# was probably the principle language the developers of XNA had in mind while creating the framework.

Matthew Vines
+5  A: 

Yes. C# is the language that most of the XNA samples have been written in.

However, you can use any .NET language, and even mix them if you wish.

Reed Copsey
I wouldn't reccommend the later though.
Finglas
Mixing languages in games is VERY handy. Once .NET 4 is released, and the DLR integration is better, this will become even more true. Having scriptability in games makes development very, very quick and easy, and .NET is very nice for this.
Reed Copsey
yes but xna supports c# only !
Yassir
XNA is .NET - I've written code that uses XNA from non-C# languages. "XNA Game Studio" just supports C#, but the actual libraries are usable from any .NET language.
Reed Copsey
+2  A: 

You can only use C# or VB.NET with XNA framework.

However, C# is the really only supported language for XNA. All of the documents, tutorials, samples, etc. are in C#. There's a small group of VB.NET XNA users, but typically, everyone that uses XNA uses C#.

Jim W
Darknight
Not to mention that F# sharp examples have been displayed for XNA. http://blogs.msdn.com/dsyme/archive/2006/12/12/writing-xbox-360-games-with-f-and-xna-game-studio-express-courtesy-of-jack-palevich.aspx
DouglasH
+1  A: 

Kinda depends on what you mean by 'advanced'. C# + XNA is kind of more for a more casual level of game development; serious, mass-market commercial games pretty much universally use C++. If you're asking this question in the first place, though, C# + XNA will probably be fine for nearly anything you'd have in mind.

chaos
This is not nearly as true as it used to be, but most mainstream game developers still focus on C++ as their primary language. There are more and more, however, that are making use of C# for portions or all of their newer development.
BBlake
+1  A: 

Yeah, you should really define 'advanced'. XNA is awesome for game development as it's much more rapid dev than C++/DirectX. Plus it's 'portable' at least in theory.

Most big shops still use C++ for games, but I think that's mostly because of the skill pool available in C++. I see that changing in the next few years.

And don't be swayed by a lot of people's arguments about how XNA is only for tiny game concepts because of the managed code. Managed Code can actually be almost as fast as native is written properly, and especially in the case of games, most of the heavy lifting is done by the GPU, which is executing your HLSL code anyway. So you do have a very fine degree of control(if you need it) and should get comparable performance for low level shading tasks. I haven't actually done side-by-side comparisons of C# vs. C++, but I can do pretty awesome things graphically in C# and get really decent frame rates, so it's my language of choice.

LoveMeSomeCode