Jump to content

  • Log In with Google      Sign In   
  • Create Account

XNA questions


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
21 replies to this topic

#1 Joe P   Members   -  Reputation: 166

Like
0Likes
Like

Posted 18 May 2011 - 11:40 AM

Hey Guys,

After all the help I received learning about engines, I thought Id ask one more :) XNA/C# and Microsoft Game Studio seem to be so popular and Im considering using it. So are these technologies authoring tools like Unity or UDK, or are they just libraries? I will not get into the whole authoring tool versus game library conversation because that has already been exhausted in my other thread. I know that there is still programming in Unity, but I want to do a bit more than scripting. In the end it is in fact an authoring tool (according to the wiki page) and Im looking to dig a bit deeper into the framework of games. So does XNA and Game studio do basically what Unity does and allow you to write C# scripts, or do you actually write the entirety of the structure and logic in C#? Im totally cool with there being pre written classes that set up boiler plate functionality, Im just wondering if it has the same GUI qualities as Unity or if its less geared towards designers than something like UDK or Unity is. Thanks!
Never, ever stop learning.
- Me

Sponsor:

#2 landlocked   Members   -  Reputation: 103

Like
2Likes
Like

Posted 18 May 2011 - 11:47 AM

All XNA does is abstract Direct3D and expose the content pipeline to you in a neat fashion. Other than that, it's all on you. Granted, you don't have to worry about sending commands to the graphics card itself but you will need to write your own methods for AI, physics, if you're not using a library, and the like. Individual screens, game logic, how you load objects, etc is also determined by you. All XNA does is put the objects you need to put stuff onto the screen in a neat package with a pretty bow. But, everything that makes a game a game is entirely up to you to write.
Always strive to be better than yourself.

#3 Joe P   Members   -  Reputation: 166

Like
0Likes
Like

Posted 18 May 2011 - 11:54 AM

All XNA does is abstract Direct3D and expose the content pipeline to you in a neat fashion. Other than that, it's all on you. Granted, you don't have to worry about sending commands to the graphics card itself but you will need to write your own methods for AI, physics, if you're not using a library, and the like. Individual screens, game logic, how you load objects, etc is also determined by you. All XNA does is put the objects you need to put stuff onto the screen in a neat package with a pretty bow. But, everything that makes a game a game is entirely up to you to write.


Ahh so it is just a library, awesome. What about the XNA Game Studio, is that some sort of authoring tool? Or is it just basically a fancy IDE to write code in?
Never, ever stop learning.
- Me

#4 phantom   Moderators   -  Reputation: 7593

Like
2Likes
Like

Posted 18 May 2011 - 11:58 AM

XNA Game Studio is basically Visual Studio with some additional Content Pipeline bits added which allow you to process your data into the correct format for you game. It also includes functionality to deploy to the various XNA platforms.

#5 arbitus   Members   -  Reputation: 436

Like
1Likes
Like

Posted 18 May 2011 - 11:58 AM

I think XNA is precisely what you are looking for in terms of assistance. It only provides some low level abstractions over the rendering pipeline so that you do not have to be concerned with implementation specific details and can learn how 3D graphics programming works without tedium. Also, it abstracts away the art and sound asset pipeline so that you do not have to worry about file loading and conversion for your assets. You can just add them to your project and start using them immediately. It also has some classes that help hide away further detail until you are ready to learn and understand them (such as shaders and effects), but it does not prevent you from taking these tasks on yourself. If you decide that XNA is too high level for you, then you can take everything you learn and apply it to SlimDX or SharpDX and stay within the .NET universe.

Also, XNA is the only target I know that lets you easily compile for a PC, console, and phone system with minimal hassle.

#6 Khaiy   Crossbones+   -  Reputation: 1342

Like
1Likes
Like

Posted 18 May 2011 - 11:59 AM

XNA is a managed DirectX wrapper. When you start an XNA project, there's already code there that will open a blank window without you typing anything. That's it.

After that, you'll be writing 100% of your own code for everything in your game, as well as having to explicitly do all hardware related tasks (although those will be done through the XNA framework with their pre-written classes). XNA provides libraries to help you work with with hardware while avoiding the blow-my-brains-out complexity of DirectX, and nothing more. From what I saw in your other thread, I think that XNA might be exactly what you're looking for.

But take a look at some of the sample games in XNA on AppHub, that'll give you an idea of what you'll be doing with C#/XNA.

#7 Joe P   Members   -  Reputation: 166

Like
0Likes
Like

Posted 18 May 2011 - 12:08 PM

wow its EXACTLY what I'm looking for lol. Just enough abstraction so that I wont want to kill myself interacting with the lowest possible level, but it really does leave everything else up to the programmer. The only downside to this is I would have to learn C# which would take a bit of time. Ive used java for years, would it be a big jump to get into C#? Should I possibly learn C# from a programming perspective first and then try to apply it to games or would it be reasonable to just jump into XNA and learn it through games?

Also, Im guessing since its just a framework there is no limits on the game format that you create? So it would be just as accessible to make an 3D FPS as it would be to make a 2d side scroller? Im not talking about complexity Im taliking about constraints of the framework (obviously a 3D game will take more knowledge and time)
Never, ever stop learning.
- Me

#8 landlocked   Members   -  Reputation: 103

Like
0Likes
Like

Posted 18 May 2011 - 12:22 PM

wow its EXACTLY what I'm looking for lol. Just enough abstraction so that I wont want to kill myself interacting with the lowest possible level, but it really does leave everything else up to the programmer. The only downside to this is I would have to learn C# which would take a bit of time. Ive used java for years, would it be a big jump to get into C#? Should I possibly learn C# from a programming perspective first and then try to apply it to games or would it be reasonable to just jump into XNA and learn it through games?

There are TONS of tutorials either way. Though, I'd definitely advise you getting a C# intro book. Most of them take you through the .NET data types and get you familiar with WinForms and some WebForm controls, WCF and WPF. WCF would be very useful if your game needs to talk to a database.

Also, Im guessing since its just a framework there is no limits on the game format that you create? So it would be just as accessible to make an 3D FPS as it would be to make a 2d side scroller? Im not talking about complexity Im taliking about constraints of the framework (obviously a 3D game will take more knowledge and time)

Correct. XNA does not restrict the type of game you can make. It just provides the bare necessities to get a game up and running.
Always strive to be better than yourself.

#9 vleugel   Members   -  Reputation: 252

Like
1Likes
Like

Posted 18 May 2011 - 12:25 PM

wow its EXACTLY what I'm looking for lol. Just enough abstraction so that I wont want to kill myself interacting with the lowest possible level, but it really does leave everything else up to the programmer. The only downside to this is I would have to learn C# which would take a bit of time. Ive used java for years, would it be a big jump to get into C#? Should I possibly learn C# from a programming perspective first and then try to apply it to games or would it be reasonable to just jump into XNA and learn it through games?

Also, Im guessing since its just a framework there is no limits on the game format that you create? So it would be just as accessible to make an 3D FPS as it would be to make a 2d side scroller? Im not talking about complexity Im taliking about constraints of the framework (obviously a 3D game will take more knowledge and time)


C# and java are quite similar, C# is like a C++/Java mix in my eyes. It realy shouldn't cost too much time for you to learn it. Just grab some good books on C# and you should be able to master it within a year. I would advise to start with C#, but realy after a fews days/weeks when you know the basics you should probably start learning XNA too. I think creating applications/games using XNA is alot more interesting than just C#, even for learning purposes. The basics of XNA can be learned in a few days too, especialy if you have experience in simular API's.

XNA is fine for both 3D and 2D games.

#10 Joe P   Members   -  Reputation: 166

Like
1Likes
Like

Posted 18 May 2011 - 02:18 PM

Sounds awesome. Im getting Visual Studio now and then XNA. Im gonna follow a simple game tutorial first then Ill pick up a C# book. Shouldn't be too much trouble to learn the language, from what I can tell it is pretty Java-like. This seems like the best route for me. The full blown game engines are cool but this seems like it will give me the experience I really want. Thanks!
Never, ever stop learning.
- Me

#11 Joe P   Members   -  Reputation: 166

Like
0Likes
Like

Posted 18 May 2011 - 02:48 PM

Actually I have another question, can any of you quickly explain the .NET framework and what it is exactly. Alot of times when people say they dont want to develop with XNA their reason is being tied up to the .NET framework. What exactly are the limitations due to this? My primary goal is to develop for the PC, I dont have too much an interest im mobile gaming or XBOX, Im guessing it wont be a problem using XNA for PC only?
Never, ever stop learning.
- Me

#12 blackbook   Members   -  Reputation: 110

Like
1Likes
Like

Posted 18 May 2011 - 03:39 PM

Actually I have another question, can any of you quickly explain the .NET framework and what it is exactly. Alot of times when people say they dont want to develop with XNA their reason is being tied up to the .NET framework. What exactly are the limitations due to this? My primary goal is to develop for the PC, I dont have too much an interest im mobile gaming or XBOX, Im guessing it wont be a problem using XNA for PC only?


I can only provide you with the wikipedia link as I'm just a beginner.

http://en.wikipedia.org/wiki/.NET_Framework

#13 j-locke   Members   -  Reputation: 825

Like
2Likes
Like

Posted 18 May 2011 - 04:14 PM

Actually I have another question, can any of you quickly explain the .NET framework and what it is exactly. Alot of times when people say they dont want to develop with XNA their reason is being tied up to the .NET framework. What exactly are the limitations due to this? My primary goal is to develop for the PC, I dont have too much an interest im mobile gaming or XBOX, Im guessing it wont be a problem using XNA for PC only?


The .NET framework is a standard library. One of its biggest upsides is that there are multiple languages that use and compile against it (Managed C++, C#, F#, Boo, among others). The complaint I think some would have against using the .NET framework is that it is a Microsoft implementation. Linux and Mac get their limited support of the framework through Mono (which some say is in particular danger of having its progression slowed since Novell's Mono developers were apparently laid off earlier this month). So, in that sense, you could consider yourself tied to Windows by using .NET.


Another possible concern of using XNA is that it is developed to target XBox, Win Phone 7 and PC. As such, Microsoft doesn't provide any focus towards making XNA use newer DirectX technologies. DX10(Vista's DX) and DX11(Win7's DX) have no support through XNA, so if you found yourself needing those cutting edge features, you'd be left out in the cold. Most indie developers don't need that cutting edge support, which is one of the reasons XNA is such a well-received option for indie developers.

I think XNA sounds like just the solution you're looking for with its level of abstraction. And that the positives of it probably outweigh those limited negatives for your goal/situation.



#14 Joe P   Members   -  Reputation: 166

Like
1Likes
Like

Posted 18 May 2011 - 05:22 PM


Actually I have another question, can any of you quickly explain the .NET framework and what it is exactly. Alot of times when people say they dont want to develop with XNA their reason is being tied up to the .NET framework. What exactly are the limitations due to this? My primary goal is to develop for the PC, I dont have too much an interest im mobile gaming or XBOX, Im guessing it wont be a problem using XNA for PC only?


The .NET framework is a standard library. One of its biggest upsides is that there are multiple languages that use and compile against it (Managed C++, C#, F#, Boo, among others). The complaint I think some would have against using the .NET framework is that it is a Microsoft implementation. Linux and Mac get their limited support of the framework through Mono (which some say is in particular danger of having its progression slowed since Novell's Mono developers were apparently laid off earlier this month). So, in that sense, you could consider yourself tied to Windows by using .NET.


Another possible concern of using XNA is that it is developed to target XBox, Win Phone 7 and PC. As such, Microsoft doesn't provide any focus towards making XNA use newer DirectX technologies. DX10(Vista's DX) and DX11(Win7's DX) have no support through XNA, so if you found yourself needing those cutting edge features, you'd be left out in the cold. Most indie developers don't need that cutting edge support, which is one of the reasons XNA is such a well-received option for indie developers.

I think XNA sounds like just the solution you're looking for with its level of abstraction. And that the positives of it probably outweigh those limited negatives for your goal/situation.



thanks man. I mean I guess being tied to Windows isnt so bad, I do use linux as well but for games I usually stick to windows. Youre right, I started using XNA a bit today and it really seems like what Ive been looking for. I useda bit of Slick2D/Java, and this is basically a more complex and supported version of that. It gets alot of the game loop and drawing code in order for you and allows you to run with it and learn.

I did check out Unity today and it is very cool, just not what Im looking for at this moment in time. I can see myself possibly using it once I feel like Ive learned a bunch from making smaller games and exploring the lower level. Its just a little bit too designer oriented for me at this point. Thanks so much for the help, I think XNA is where ill stay for a while :)
Never, ever stop learning.
- Me

#15 Joe P   Members   -  Reputation: 166

Like
0Likes
Like

Posted 19 May 2011 - 01:09 PM

Ive been wondering something before I get deep into C#/XNA. I know this is hard to answer, but does it seem like Microsoft plan to continue supporting XNA in the future? By the time I learn C# comfortably it will be a while, so I dont want to invest tons of time into the framework only to find that Microsoft drops it when some new tech comes out such as the new XBOX.
Never, ever stop learning.
- Me

#16 Khaiy   Crossbones+   -  Reputation: 1342

Like
0Likes
Like

Posted 19 May 2011 - 01:14 PM

It's hard to say, but I don't think that MS will be dropping XNA any time soon. It's very popular, and has allowed for programmers to make and deploy games for sale on Xbox/Win7 phones with no real cost to Microsoft. Instead, people submit games for sale, and MS gets a cut of that, plus the fee for getting licenses to sell the games at all.

I haven't heard anything specific about abandoning XNA, and so I think that it would be unreasonable to assume that it will happen. Besides, that's an issue that you're going to face with everything programming related. Libraries become deprecated, engines fall out of favor, languages become less popular, and so on. It's not going to hurt you to know C# even if XNA does disappear, which again is unlikely in my opinion, and with that attitude you aren't going to be able to start developing using anything.

#17 Joe P   Members   -  Reputation: 166

Like
0Likes
Like

Posted 19 May 2011 - 01:41 PM

It's hard to say, but I don't think that MS will be dropping XNA any time soon. It's very popular, and has allowed for programmers to make and deploy games for sale on Xbox/Win7 phones with no real cost to Microsoft. Instead, people submit games for sale, and MS gets a cut of that, plus the fee for getting licenses to sell the games at all.

I haven't heard anything specific about abandoning XNA, and so I think that it would be unreasonable to assume that it will happen. Besides, that's an issue that you're going to face with everything programming related. Libraries become deprecated, engines fall out of favor, languages become less popular, and so on. It's not going to hurt you to know C# even if XNA does disappear, which again is unlikely in my opinion, and with that attitude you aren't going to be able to start developing using anything.


I understand what youre saying, I cant expect things to stay around forever. I was just concerned because I do in fact know other languages pretty well, and I was really only learning C# so I can use XNA because I really liked the feel of it. Language wise it would be much easier for me to use Java or C++ because of my experience, but I just never found a library for those languages that compared to what XNA does, Im kind of picky about how much control I want over my development :) It does seem like XNA has a strong following, so if I cant at least get a few years out of it I guess thats good lol.
Never, ever stop learning.
- Me

#18 stupid_programmer   Members   -  Reputation: 1241

Like
0Likes
Like

Posted 19 May 2011 - 02:52 PM

C# certainly isn't going anywhere anytime soon. And people develop for old platforms all the time. Even if at some point in the future Microsoft shuts down XBLIG I would figure somebody would figure out how to root the 360 to still be able to transfer games to it (kind of surprised it hasn't happened already). Even from the standpoint of PC gaming just because Microsoft might stop supporting it doesn't mean everybody would give up on it the same day. Given the success of XBLIG and the bit of money Microsoft makes for very little work on their part it would be stupid for them to shut the service down.

#19 Khaiy   Crossbones+   -  Reputation: 1342

Like
0Likes
Like

Posted 19 May 2011 - 03:27 PM

I understand what youre saying, I cant expect things to stay around forever. I was just concerned because I do in fact know other languages pretty well, and I was really only learning C# so I can use XNA because I really liked the feel of it. Language wise it would be much easier for me to use Java or C++ because of my experience, but I just never found a library for those languages that compared to what XNA does, Im kind of picky about how much control I want over my development :) It does seem like XNA has a strong following, so if I cant at least get a few years out of it I guess thats good lol.



Yeah, I can see what you mean. But programming games is its own skill in addition to programming in general, so at least you'll get more experience with that. And you can use SFML + OpenGL for a similar effect using a C++ or C# binding (not sure about Java), which will be much easier once you have worked with the game loop and Draw/Update calls and so forth.

I think that you'll be able to pick up C# pretty easily, and even if you can't use XNA in the future for some reason you'll be able to work pretty quickly and well doing core programming in C++ and then using C# to quickly/easily/stably extend that core. C# is also good for rapid prototyping, which can then translate into a more complex C++ design.

#20 j-locke   Members   -  Reputation: 825

Like
0Likes
Like

Posted 19 May 2011 - 03:27 PM

I agree with the sentiment others have said. There is definitely no way to be certain of XNA's future (much like any other framework or engine), but it seems like a solid setup for Microsoft. Games get peer reviewed and then published essentially without having to be manually reviewed by Microsoft. They get their 30% cut. And the program helps set the 360 apart from its competition.

And C# will likely outlive XNA by a noteworthy degree. With C++ and Java experience, learning C# will likely be a pretty easy pick up.






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS