[C#, XNA] My Experience With Learning Game Programming

  • (2 Pages)
  • +
  • 1
  • 2

17 Replies - 1345 Views - Last Post: 13 August 2013 - 01:27 PM

#1 traxix  Icon User is offline

  • D.I.C Head

Reputation: 85
  • View blog
  • Posts: 116
  • Joined: 10-August 13

[C#, XNA] My Experience With Learning Game Programming

Posted 10 August 2013 - 05:10 PM

Hey Everyone!

I'm new to the community, and have decided to write about my experiences with learning Game Development, to provide some background, as well as to ask for some guidance on what to do next.

Recently, about less than a month ago, I decided to get into Game Development, and of course, as any beginner starts out I started looking for resources and tutorials. I have had some previous knowledge of the basic concepts of programming (with Pascal): variables, declarations, loops, arrays etc. So after reading a lot of blogs and articles on what to start with, I decided that I knew enough to get started with C++ which everyone was saying is terrible for beginners (and they were right).

After a few days of watching tutorials (and to my surprise I was doing pretty good), writing some code and having troubles with some topics that in my opinion were really badly explained. I tried following a tutorial on making a Pong clone in C++, and that's where I saw why everyone was saying that C++ was indeed bad for beginners (we are talking BEGINNERS!), and the complexity of the code was really unnecessary for making beginner games. It did not feel like giving up, but more like understanding why I should start with a more beginner friendly language, and ending off with C++ later along the line.

From previous blog posts and articles, C# was very highly recommended and that was my next stop. I learned C# in 2 days time! (of course not all of it), and it even made me understand better some concepts that I had trouble with in C++. I would HIGHLY recommend C# to anyone starting off! And to not be worried about not starting with C++, and that you'll be stuck with some other language (because everyone considers it the standard, and they think it's hard to learn more languages). Hell, let me tell you that after learning your first programming language, you'll be able to learn any amount of languages you want! So you are never stuck with one language! OK, that part was more for the beginners reading. Because I know what I was worried about when I started off. :)/>

So after learning C#, the most recommended platform was of course XNA! And boy, XNA is the most beginner friendly platform to start off with! There's tons of great resources out there including the ones from MSDN, and you get into making simple games with such ease! (which is REALLY important as a beginner!) In XNA you do what you're supposed to be doing as a beginner: understanding concepts of the game loop, learning game programming (it's not just an engine you click in), understanding game logic, seeing immediate RESULTS!, and you MAKE GAMES with such ease!

Now to the comment of XNA is dead, my reply is:
I just started out. XNA is not dead, its just not going to be updated, and will work perfectly on all platform that it was developed for until it stopped being updated! And even if it was dead? We are using XNA as a learning platform for entry game development. All the knowledge acquired here will be transferred into anything else you get into. And don't get me wrong, you can still make killer games in XNA, which I plan to do! Also, I haven't even mentioned MonoGame. :)/>

I personally plan to get into Unity later on, but I really want to work on the programming side of things more before I go for an already made game engine.

TL;DR: Started learning C++, I saw the unnecessary complexity for beginners. Started learning C#, the best language for beginners in my opinion. Got into XNA, excellent for beginners! XNA is not dead, it's just not going to be updated. Your learning experience in XNA will be worth it, and it will be transferable to anything else you go for.

So, I really didn't want to ask questions, because I feel I would ask the wrong things, as I'm new to programming and I don't really know everything that's out there. But basically I have good enough knowledge of XNA, and making any basic games, also I'm good at Math, and I need some guidance on what I need to learn next to make the next level of games.

Feel free to write long posts If you want to. Or ask me questions so you can form your answer. I'd like to read any info you can offer. I'm really eager to learn everything, and I would love if someone wants to chat with me, PM me with your Skype or any place you'd like to chat in. (like IRC maybe). :)/>

Oh, and I know it's my first post, sorry for being a bit lengthy, I really felt like writing.

Cheers!

Is This A Good Question/Topic? 1
  • +

Replies To: [C#, XNA] My Experience With Learning Game Programming

#2 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 0
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 10 August 2013 - 05:45 PM

View Posttraxix, on 10 August 2013 - 09:10 PM, said:

Now to the comment of XNA is dead, my reply is:
I just started out. XNA is not dead, its just not going to be updated...

So when would XNA be dead to you?
Was This Post Helpful? 0
  • +
  • -

#3 traxix  Icon User is offline

  • D.I.C Head

Reputation: 85
  • View blog
  • Posts: 116
  • Joined: 10-August 13

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 10 August 2013 - 06:23 PM

To be honest, it doesn't matter if it's dead or not for a beginner. I doubt that people would disagree that it's a great learning platform for beginners to game programming, instead of using game engines, and not have any idea what happens on the programming level at all. And I am a beginner, so I know this is true.

As for the real "death" of XNA. Until the moment Windows XP, Windows 7, Xbox 360, any of the mobile platforms (MonoGame ports XNA to them), and any platforms that would be able to run a game made in XNA are completely dead, and when barely any people use them, then XNA can be considered dead. :)

But as I said, I really like it for learning, and will probably switch to Unity later on. But I will never say XNA is dead, while a large portion of the machines that people use are able to run XNA games.
Was This Post Helpful? 1
  • +
  • -

#4 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 0
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 10 August 2013 - 06:39 PM

There will always be somebody using those platforms. It is generally accepted that when a toolchain 'dies' it is no longer updated, even if serious bugs are found that would warrant it being updated. So if you still choose to use it if such a thing were to be discovered, as an example, then there are no guarantees that your application will run as expected. Secondly, the other platforms are still being updated, and with those updates there is no option to continue supporting XNA, so XNA will very well break anyway because of incompatible new platform functionality.

This is why it is not a good idea to continue using a dead toolchain.
Was This Post Helpful? 0
  • +
  • -

#5 traxix  Icon User is offline

  • D.I.C Head

Reputation: 85
  • View blog
  • Posts: 116
  • Joined: 10-August 13

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 10 August 2013 - 06:48 PM

Thanks, for the info. So you're saying that games that have been made with XNA, in the future might not work as expected on platforms that are being updated.

I do think in the long term you have to move away from XNA. But as a beginner, and for some time I think it will be OK. It will be much easier to learn a new platform when XNA is really dead.

So I'll rephrase it, but it still stays the same:
"I will never say XNA is dead, while a large portion of the machines that people use are able to run XNA games without major functionality issues."
Was This Post Helpful? 1
  • +
  • -

#6 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 0
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 10 August 2013 - 07:01 PM

View Posttraxix, on 10 August 2013 - 10:48 PM, said:

So I'll rephrase it, but it still stays the same:
"I will never say XNA is dead, while a large portion of the machines that people use are able to run XNA games without major functionality issues."

But this doesn't make sense because you are assuming that they will use functionality that will not cause issues when it's perfectly possible ghat they will!

I still say it's a waste of time, but it was never part of my learning anyway.
Was This Post Helpful? 0
  • +
  • -

#7 traxix  Icon User is offline

  • D.I.C Head

Reputation: 85
  • View blog
  • Posts: 116
  • Joined: 10-August 13

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 10 August 2013 - 07:09 PM

Hey, guy... listen. I have no idea what you're trying to prove to me. As a beginner coming into programming and game dev, with no previous experience, the impression that you will get from it is really a deciding factor if you will continue making games or not. If I would have started C++ and DirectX on my own, I would not be writing this post at all.

In the beginning it should be fun and easy to use, and beginner friendly. And that's exactly what XNA provides for any beginner. No learning experience is a waste of time, when you don't have any bounds or deadlines in which you have to finish it.
Was This Post Helpful? 0
  • +
  • -

#8 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 0
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 10 August 2013 - 07:34 PM

Hey, guy. What I am trying to do, not to just you, is to come clean and say that the reason why they are sticking with XNA is not only because it's easy, it's because it also creates the illusion to them that they know about game development when they actually know about XNA.

Games is about using a variety of techniques and tools to get the job done, some more challenging than others. There is nothing good to be had starting of easy - if you're serious about making games you will leave XNA behind sooner rather than later and get your hands dirty.
Was This Post Helpful? 0
  • +
  • -

#9 traxix  Icon User is offline

  • D.I.C Head

Reputation: 85
  • View blog
  • Posts: 116
  • Joined: 10-August 13

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 10 August 2013 - 07:43 PM

I would, if you actually gave me advice and guidance where to go. Which is what I asked for in the first post... I really don't care about the state of XNA as long as I'm not making serious games. I'd recommend it to any beginner instead of using something like GameMaker. And I did state that in the end you'll end up with C++ anyway.
Was This Post Helpful? 1
  • +
  • -

#10 BBeck  Icon User is offline

  • Here to help.
  • member icon


Reputation: 578
  • View blog
  • Posts: 1,282
  • Joined: 24-April 12

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 10 August 2013 - 08:04 PM

View Posttraxix, on 10 August 2013 - 07:10 PM, said:

Hey Everyone!

I'm new to the community, and have decided to write about my experiences with learning Game Development, to provide some background, as well as to ask for some guidance on what to do next.

Recently, about less than a month ago, I decided to get into Game Development, and of course, as any beginner starts out I started looking for resources and tutorials. I have had some previous knowledge of the basic concepts of programming (with Pascal): variables, declarations, loops, arrays etc. So after reading a lot of blogs and articles on what to start with, I decided that I knew enough to get started with C++ which everyone was saying is terrible for beginners (and they were right).

After a few days of watching tutorials (and to my surprise I was doing pretty good), writing some code and having troubles with some topics that in my opinion were really badly explained. I tried following a tutorial on making a Pong clone in C++, and that's where I saw why everyone was saying that C++ was indeed bad for beginners (we are talking BEGINNERS!), and the complexity of the code was really unnecessary for making beginner games. It did not feel like giving up, but more like understanding why I should start with a more beginner friendly language, and ending off with C++ later along the line.

From previous blog posts and articles, C# was very highly recommended and that was my next stop. I learned C# in 2 days time! (of course not all of it), and it even made me understand better some concepts that I had trouble with in C++. I would HIGHLY recommend C# to anyone starting off! And to not be worried about not starting with C++, and that you'll be stuck with some other language (because everyone considers it the standard, and they think it's hard to learn more languages). Hell, let me tell you that after learning your first programming language, you'll be able to learn any amount of languages you want! So you are never stuck with one language! OK, that part was more for the beginners reading. Because I know what I was worried about when I started off. :)/>/>

So after learning C#, the most recommended platform was of course XNA! And boy, XNA is the most beginner friendly platform to start off with! There's tons of great resources out there including the ones from MSDN, and you get into making simple games with such ease! (which is REALLY important as a beginner!) In XNA you do what you're supposed to be doing as a beginner: understanding concepts of the game loop, learning game programming (it's not just an engine you click in), understanding game logic, seeing immediate RESULTS!, and you MAKE GAMES with such ease!

Now to the comment of XNA is dead, my reply is:
I just started out. XNA is not dead, its just not going to be updated, and will work perfectly on all platform that it was developed for until it stopped being updated! And even if it was dead? We are using XNA as a learning platform for entry game development. All the knowledge acquired here will be transferred into anything else you get into. And don't get me wrong, you can still make killer games in XNA, which I plan to do! Also, I haven't even mentioned MonoGame. :)/>/>

I personally plan to get into Unity later on, but I really want to work on the programming side of things more before I go for an already made game engine.

TL;DR: Started learning C++, I saw the unnecessary complexity for beginners. Started learning C#, the best language for beginners in my opinion. Got into XNA, excellent for beginners! XNA is not dead, it's just not going to be updated. Your learning experience in XNA will be worth it, and it will be transferable to anything else you go for.

So, I really didn't want to ask questions, because I feel I would ask the wrong things, as I'm new to programming and I don't really know everything that's out there. But basically I have good enough knowledge of XNA, and making any basic games, also I'm good at Math, and I need some guidance on what I need to learn next to make the next level of games.

Feel free to write long posts If you want to. Or ask me questions so you can form your answer. I'd like to read any info you can offer. I'm really eager to learn everything, and I would love if someone wants to chat with me, PM me with your Skype or any place you'd like to chat in. (like IRC maybe). :)/>/>

Oh, and I know it's my first post, sorry for being a bit lengthy, I really felt like writing.

Cheers!



Welcome to a forum of kindred souls! You're gonna love XNA.

My website is VirtuallyProgramming.com if you want to check it out.

Ignore Butch. As much as he claims that XNA is worthless, he's spending his time trolling the XNA forum. His bark is really loud, but he can't hurt you through the Internet. So the bite's not all that.

Most of us here, with the exception of Butch of course, are pretty friendly and look forward to helping you in all your XNA endeavors.
Was This Post Helpful? 0
  • +
  • -

#11 traxix  Icon User is offline

  • D.I.C Head

Reputation: 85
  • View blog
  • Posts: 116
  • Joined: 10-August 13

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 10 August 2013 - 08:24 PM

Woah, thanks BBeck, your site has so much info, and I haven't ran across it till now. And it definitely seems like it's the stuff I need, after learning all the beginner stuff. I've already read some articles for matrices and how the 3D engine should work, so this will be great to build up on that.

Also, when it comes to level design when making 2D games, how do you go about making a level editor or something similar? I've only seen the creation of tile map arrays and filling them up manually with numbers, which kind of seems silly.

            map.Generate(new int[,]{
                {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                {2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1},
                {2,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,2,2},
                {2,2,1,1,1,0,0,0,0,1,1,1,2,2,2,1,0,0,0,0,2,2},
                {2,2,0,0,0,0,0,0,1,2,2,2,2,2,2,2,1,1,1,1,2,2},
                {2,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
                {2,0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
                {2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
                                                               }, 64);



Cheers!
Was This Post Helpful? 0
  • +
  • -

#12 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 0
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 10 August 2013 - 09:03 PM

Yeah, BBeck. I'll be sure to isolate XNA here and off the main game dev forum which is what is supposed to happen anyway. Ask yourself why XNA isn't part of where DirectX, OpenGL, etc. is warmly accepted.

I digress. Happy XNA'ing.
Was This Post Helpful? 1
  • +
  • -

#13 BBeck  Icon User is offline

  • Here to help.
  • member icon


Reputation: 578
  • View blog
  • Posts: 1,282
  • Joined: 24-April 12

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 11 August 2013 - 04:19 AM

View Posttraxix, on 10 August 2013 - 10:24 PM, said:

Woah, thanks BBeck, your site has so much info, and I haven't ran across it till now. And it definitely seems like it's the stuff I need, after learning all the beginner stuff. I've already read some articles for matrices and how the 3D engine should work, so this will be great to build up on that.

Also, when it comes to level design when making 2D games, how do you go about making a level editor or something similar? I've only seen the creation of tile map arrays and filling them up manually with numbers, which kind of seems silly.

Cheers!



When you're first putting your program together like that, I usually just use an array exactly like that. However, eventually you want to be able to import a level file that contains that information. I know exactly where to find a tutorial to show you how to do that. However, I would call it a very advanced tutorial. For XNA, you probably want to extend the Content Pipeline and teach it how to read your level files. If you have external files, you can generate your external files with a program that was not even written with XNA. You could use VB.Net for example or Java, or really anything capable of generating files. Google "tile map editor" and you will probably find some free tile map editors that will generate the file for you.

You can also find tutorials on tile map editors. I hear that Nick Gravlyn's tutorial is pretty good even if it is extremely out dated.
http://www.youtube.c...h?v=lk0GsyxCj-U

However, to load a level I've got the perfect tutorial. It's a bit advanced, but it's by RB Whitiker, and so you're in good hands. In this tutorial, RB walks you through the exact steps to extend the Content Pipeline to load a level file containing the exact sort of information that you inquired about. Really, it's a perfect answer to your question even if its a bit of an advanced answer.
http://rbwhitaker.wi...eline-tutorials

View PostButchDean, on 10 August 2013 - 11:03 PM, said:

Yeah, BBeck. I'll be sure to isolate XNA here and off the main game dev forum which is what is supposed to happen anyway. Ask yourself why XNA isn't part of where DirectX, OpenGL, etc. is warmly accepted.

I digress. Happy XNA'ing.


Thank you Butch. XNA questions and topics really should be here in the XNA forum and not in the general game programming forum.
Was This Post Helpful? 1
  • +
  • -

#14 BBeck  Icon User is offline

  • Here to help.
  • member icon


Reputation: 578
  • View blog
  • Posts: 1,282
  • Joined: 24-April 12

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 11 August 2013 - 04:44 AM

View PostButchDean, on 10 August 2013 - 08:39 PM, said:

There will always be somebody using those platforms. It is generally accepted that when a toolchain 'dies' it is no longer updated, even if serious bugs are found that would warrant it being updated. So if you still choose to use it if such a thing were to be discovered, as an example, then there are no guarantees that your application will run as expected. Secondly, the other platforms are still being updated, and with those updates there is no option to continue supporting XNA, so XNA will very well break anyway because of incompatible new platform functionality.

This is why it is not a good idea to continue using a dead toolchain.


While that may be true, and generally good advice, I have to agree with the OP on this one that XNA is a great place to be even if it is no longer being updated.

I've been working with XNA for a couple of years now and I've never once seen a bug in XNA. It's as rock solid as anything I've ever seen. It's built on .Net which is also rock solid. I still remember VB6 with it's ActiveX components that were buggy and completely undocumented. Now that was a nightmare. So, I wouldn't hold my breath waiting to find a "serious bugs" in XNA. Any bug that you do find is going to be so obscure and inconsequential that it likely won't matter anyway.

Sure, eventually XNA will no longer be compatible with Windows. XNA 4.0 likely won't be compatible with the Xbox One. But like the OP said, that doesn't stop you from using it now. It works with the Xbox 360 and the Xbox One isn't even out yet. And it works on Windows 8, even if it only runs as a "desktop app".

So, yes, XNA won't be around forever. But that just means you need to get in there and learn everything you can from it before it's gone. And if we're lucky, we'll get an XNA 5.0 by then. (Microsoft has said things recently that put the possibility of an XNA 5.0 back on the table, although it's far from certain.)
Was This Post Helpful? 0
  • +
  • -

#15 traxix  Icon User is offline

  • D.I.C Head

Reputation: 85
  • View blog
  • Posts: 116
  • Joined: 10-August 13

Re: [C#, XNA] My Experience With Learning Game Programming

Posted 11 August 2013 - 05:39 AM

Thanks BBeck, I'll get to these right away. I've also previously seen RB's site, which is great, and I can't believe I missed this tutorial!

Also, I understand what Butch is talking about completely. However I really feel that he's missing the point when it comes to beginners learning game programming. XNA is great for beginners learning, hell, you can even make a lot of games with it until it really becomes incompatible.

Also about the comment, on XNA creating the illusion that you know game programming. I constantly see how much more I need to learn in XNA and out of XNA. And the feeling you get from actually seeing result, instead of constantly debugging code, is really motivating.
Was This Post Helpful? 1
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2