C# and XNA vs. C++ and SDL

Started by
13 comments, last by sebastiansylvan 16 years, 4 months ago
Hello, this is my first time starting a post. So far I have learned some C# and some C++. I was wandering should I stick with C# and learn XNA or go with C++ with SDL.
Advertisement
Whichever you prefer. Neither one is better or worse than the other.

I recommend C# and XNA for a number of reasons. First having the garbage collector makes beginning game programming (and even intermediate level) much easier. A lot of that helps you then learn a lot of graphical and gameplay-related programming topics that are, in my opinion, trickier to learn in C++ if you are not very experienced.

Platform availability is also a big difference between the two of those. With XNA you can make games playable on your Windows PC and your Xbox 360. With SDL and C++ you can make games for Windows, Linux, and Mac OS X.
Thank you very much for your reply.

From what you said I think I will go with C# and XNA because I am not experienced. I still welcome other peoples replies. Thank you.
I agree with NickGravelyn and recommend C# + XNA since you're saying that you don't have much experience with either C# or C++. C# is a lot easier to get started with and do some productive things when you're starting out compared to C/C++.
Well, I thought that I would just post my two cents here.

C++ isn't nearly as hard to learn as a lot of people claim it is. It may not be the easiest language to learn, but it is certainly very versatile. On top of that, you can find tutorials on C++ (and SDL, to a lesser extent) anywhere. There is simply a really large number of programmers that know it. So it is a bit harder, but it was my first programming language, and I'm doing just fine.

As for SDL, I'm only just starting it, and I absolutely love it. When they say Simple DirectMedia Layer, they put the emphasis on Simple. No joke, SDL is really easy to pick up.

Now, I have never used C# or XNA, so I can't say that C++ and SDL is a better option, but I can tell you that C++ and SDL makes a really good option. And somebody had to show some love for the other side on this topic.

Brian
<hl>My Blog
Quote:Original post by shou4577
Well, I thought that I would just post my two cents here.

C++ isn't nearly as hard to learn as a lot of people claim it is. It may not be the easiest language to learn, but it is certainly very versatile. On top of that, you can find tutorials on C++ (and SDL, to a lesser extent) anywhere.


i'll have to agree, i mean i'm far from an expert but i didn't have much trouble at all getting used to C++, i'm not saying C++ is better, because from what i gather what language is best depends on the situation, but the difficulty of C++ seems to be greatly overstated.

i've been programming for 8 only months or so and i've put together a handful of 2D games using C++ w/ SDL. that being said, i don't know much about C# other than dabbling in it from time to time.

everyone has a bias, ie. for everyone who pushes for C#, you'll notice that its the prefered language of that person, and the people who are really familiar with a bunch of different languages tend to be the ones who tell you to just choose one and stick with it.


--------------------------------------Not All Martyrs See Divinity, But At Least You Tried
I'd stick with C# and XNA, but I'd also use TorqueX.
Hello,

Most people, who have been game programming for a while, would recommend for you to either start with Python or C# and I would second their opinion. Both Python and C# are easier for beginners to start off with. They both have ways to make graphical games and that is Pygame(for Python) and XNA(for C#). I have never used Pygame before so I can not vouch for that, but I have used XNA before. XNA is x100 easier to learn than SDL, DirectX, or OpenGL in my opinion.

I would recommend you not to learn C++ first. Trust me on that because I actually learned it first. C++ is a monster language to try to learn first. Both C# and Python will teach you how to program without worrying about a lot of crazy things. One of those things is garbage collection, which is hard to make sure you do properly.

Anyways choose either Python, C#, or some name language on your own choice and make sure you learn the language first and then learn either Pygame, XNA, or what ever graphics thing for the language you chosen. Then start programming games, and when you are ready you should delve into the vast realm of C++ but that is only when you are ready. Anyways I wish you much luck with your programming experience and hope to see some of those games :)!

~Sincerely,
Carl J. Loucius
I don't know C#/XNA, but I've hacked up a pretty simple engine in C++/SDL/OGL. I wouldn't do it again, even though I am now decent with C++ (1 yr professional experience). You just spend far too much time debugging memory issues, even as an intermediate-level developer. Jump into a managed language and you no longer have to worry about stuff like that - you get to spend your time writing logic, and not wasting entire days debugging crap that you don't care about.

Debugging is not fun. Writing code is fun. Writing code in C++ means more time wasted on the frustrating, boring part of programming.
Well if you want to be making games right away stick with C#/XNA.
It's way easier than C++/SDL but not as easy as Python/pygame.
[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe

This topic is closed to new replies.

Advertisement