C#/XNA or Python/Pygame for Game Development (2D Side-Scrolling like Terraria)?

Started by
42 comments, last by birko19 11 years, 10 months ago
If you want to start creating games fairly quickly, have you considered BlitzMax? DarkBasic Pro? DarkGDK ? If you want to use C/C++ DarkGDK is probably
the way to go fairly quickly, it's free and you only have to pay when you start selling your games.

You could always start learning ANSI C++ and create a basic text adventure first, see how you go :)

We all know your pain my friend, it is hard to choose, but if you don't choose and stick with it, your still be choosing 10 years down the line, like many
people I know.
Advertisement
If I see one good 2D game (platformer) made in Python, my mind will be set. C# is my other choice if I decide to not take Python.
Take a look at http://kivy.org/#home

see what you think :)
Fine, I have decided to use Python. :ph34r: What should I use to learn? I will stay with it, I already know the basics of Python.

I would like to take this moment to thank all of you for your insight on my situation and information/opinions on certain languages. It really got me thinking, I think I'm ready to start! :D
Honestly, if you found C# too difficult, I wouldn't even consider picking up C++ as your first language. C# is one of the easiest languages to learn from my experience, and combined with XNA, you can witness very fast results. You seem incredibly indecisive, and you're trying to take everybody's advice, which is influencing the way you think, as well as hinders your own learning experience. There's no "best" starter language, nor are you going to be a better developer by picking up a "more powerful language" as your starter.

When you actually start to learn a language, and become more proficient as a programmer, then you can pick up other programming languages with ease. You have decided to stick with Python, which is a highly recommended language to start out with on these forums, and around the web. I would discontinue searching these forums for advice on starter languages, ignore everybody's input from now, and just program. Make games, make applications, make sexy time, just start learning and stop thinking about it!

Honestly, if you found C# too difficult, I wouldn't even consider picking up C++ as your first language. C# is one of the easiest languages to learn from my experience, and combined with XNA, you can witness very fast results. You seem incredibly indecisive, and you're trying to take everybody's advice, which is influencing the way you think, as well as hinders your own learning experience. There's no "best" starter language, nor are you going to be a better developer by picking up a "more powerful language" as your starter.

When you actually start to learn a language, and become more proficient as a programmer, then you can pick up other programming languages with ease. You have decided to stick with Python, which is a highly recommended language to start out with on these forums, and around the web. I would discontinue searching these forums for advice on starter languages, ignore everybody's input from now, and just program. Make games, make applications, make sexy time, just start learning and stop thinking about it!


Thank you for bringing a whole new field of insight. I am going to work with Python. :)
I've just started game development after learning java. I decided to use python and pygame to make 2D games, and so far I'm loving it.
I have a suggestion in a bit of a different vein. Well, actually it looks like the same vein as Serapth, but I'm going to reemphasize and expand on it.

You mention you started with batch scripting and have used various other languages. Also, you say you're 15 - am I correct in inferring that you've never taken a formal class in computer science? There's no shame in that, but it does mean that there's something you have to be aware of.

Learning a language isn't really what you need to do. It's likely that your knowledge of programming is all imperative. Again, there's no shame in that, but it means that if you jump headfirst into making a game, or even learning a language, you're going to be getting a bunch of information that you won't know what to do with. I tried to learn C++ before studying computer science, and I thought I knew what I was doing; I was, however, sorely mistaken. Not only did I not know what I was doing, I didn't know that I didn't know what I was doing. There's an entire, rich, important world of computer science out there, of paradigms from declarative to functional to object-oriented, and until you wade into it, you probably won't truly understand what you're doing, and more importantly, why you're doing it. It can be extremely frustrating both because bugs will pop up that you don't understand and because your design will be, in a word, poor. At least, that's what I experienced, and it was very disheartening.

To that end, I'd recommend picking up and going through introductions to computer science. I actually have something that might be perfect for you - check out this. It's an introduction to computer science done by MIT - it requires little in the way of prerequisites, and teaches important, foundational techniques in CS. Things like debugging, container types, basic algorithms, and recursion. Best of all, it uses Python as its main language - if you do the problem sets, by the end you'll be filling out a skeletal program to model virus populations within an organism. It only takes a few weeks if you study hard every day. Though I haven't done it myself, there's also this, which is the same course but designed for learners over the internet. Remember, you'll be learning Python this way - but rather than the shallow understanding you'd get from just skimming documents and tutorials, you'll get a rich understanding that you'll be able to apply to other languages and problem areas.

That all may seem harsh, but I see myself about ten months ago in your posts. I had brief experiences with languages and thought I knew enough to get started making a game. All I did was throw together code so poorly that I got frustrated and gave up. I spent the next several months learning everything I could from MIT's courses and various forums. I'm far from an expert - I've only actually finished about three of the introductory courses, and my own game project is basically only at the point where I have colliding blocks on the screen. But I do know that if I hadn't gone through those courses, my code base would be a mess and I probably would have given up on programming entirely. Though my code is still terrible, it's leagues ahead of what it was, and uses many important concepts, like abstraction barriers and data hiding, that I didn't even know existed before.

It's a long road, but ultimately it's one of the few that will get you where you want to be. I wish you the best of luck.

I have a suggestion in a bit of a different vein. Well, actually it looks like the same vein as Serapth, but I'm going to reemphasize and expand on it.

You mention you started with batch scripting and have used various other languages. Also, you say you're 15 - am I correct in inferring that you've never taken a formal class in computer science? There's no shame in that, but it does mean that there's something you have to be aware of.

Learning a language isn't really what you need to do. It's likely that your knowledge of programming is all imperative. Again, there's no shame in that, but it means that if you jump headfirst into making a game, or even learning a language, you're going to be getting a bunch of information that you won't know what to do with. I tried to learn C++ before studying computer science, and I thought I knew what I was doing; I was, however, sorely mistaken. Not only did I not know what I was doing, I didn't know that I didn't know what I was doing. There's an entire, rich, important world of computer science out there, of paradigms from declarative to functional to object-oriented, and until you wade into it, you probably won't truly understand what you're doing, and more importantly, why you're doing it. It can be extremely frustrating both because bugs will pop up that you don't understand and because your design will be, in a word, poor. At least, that's what I experienced, and it was very disheartening.

To that end, I'd recommend picking up and going through introductions to computer science. I actually have something that might be perfect for you - check out this. It's an introduction to computer science done by MIT - it requires little in the way of prerequisites, and teaches important, foundational techniques in CS. Things like debugging, container types, basic algorithms, and recursion. Best of all, it uses Python as its main language - if you do the problem sets, by the end you'll be filling out a skeletal program to model virus populations within an organism. It only takes a few weeks if you study hard every day. Though I haven't done it myself, there's also this, which is the same course but designed for learners over the internet. Remember, you'll be learning Python this way - but rather than the shallow understanding you'd get from just skimming documents and tutorials, you'll get a rich understanding that you'll be able to apply to other languages and problem areas.

That all may seem harsh, but I see myself about ten months ago in your posts. I had brief experiences with languages and thought I knew enough to get started making a game. All I did was throw together code so poorly that I got frustrated and gave up. I spent the next several months learning everything I could from MIT's courses and various forums. I'm far from an expert - I've only actually finished about three of the introductory courses, and my own game project is basically only at the point where I have colliding blocks on the screen. But I do know that if I hadn't gone through those courses, my code base would be a mess and I probably would have given up on programming entirely. Though my code is still terrible, it's leagues ahead of what it was, and uses many important concepts, like abstraction barriers and data hiding, that I didn't even know existed before.

It's a long road, but ultimately it's one of the few that will get you where you want to be. I wish you the best of luck.


You put a lot of effort into that post, I realize everything a lot more clearly now. I will go through these Lectures, they look very interesting! Thanks again! :lol:
I'd still strongly suggest AS3/Flash for this case. If C# is way over your head, then I'm going to guess Python or AS3 is not going to be much simpler.

But, the nice aspect to Flash for beginners is that the flash authoring software is also a content tool, and learning many concepts can be more visual because of that.

Although, I will say that I really don't see AS3 or C# as being very different at all. I'm also guessing that you might need to take a step back and work on learning basic programming concepts before you'll even be ready to make a game. Feels like you might be putting the cart in front of the horse to some degree.

This topic is closed to new replies.

Advertisement