XNA questions

Started by
20 comments, last by stupid_programmer 12 years, 11 months ago
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
Advertisement
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.

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
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.
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.
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.

-------R.I.P.-------

Selective Quote

~Too Late - Too Soon~

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

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.

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.
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

This topic is closed to new replies.

Advertisement