Sign in to follow this  
Cham

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

Recommended Posts

Cham    188
[quote name='Serapth' timestamp='1338849981' post='4946249']
[quote name='Cham' timestamp='1338848284' post='4946241']
I am planning to make a game similar to terraria. I haven't seen a game made in Python that comes close to the quality of Terraria.

Also, windows users will have to install Python in order to play my game, which doesn't seem very effecient.

With C# and XNA you don't need to do any of that.

Im just saying. [img]http://public.gamedev.net//public/style_emoticons/default/sad.png[/img]
[/quote]


First off, you can bundle a Python game into a single executable.
Second, with C#/XNA, you still have dependencies.


That said, you are putting the horse way before the cart, you need to learn programming first. The guy behind Terraria probably spent years learning to program before creating that game, which I imagine took a number more years to create.
[/quote]

Wait so you can bundle Python applications into one .exe and have it run even though the user does not have Python? I looked at the best games made in Python, they are not very professional. All the 2D games are choppy, and 3D games aren't very high quality. Edited by Cham

Share this post


Link to post
Share on other sites
Serapth    6671
[quote name='Cham' timestamp='1338851825' post='4946258']
[quote name='Serapth' timestamp='1338849981' post='4946249']
[quote name='Cham' timestamp='1338848284' post='4946241']
I am planning to make a game similar to terraria. I haven't seen a game made in Python that comes close to the quality of Terraria.

Also, windows users will have to install Python in order to play my game, which doesn't seem very effecient.

With C# and XNA you don't need to do any of that.

Im just saying. [img]http://public.gamedev.net//public/style_emoticons/default/sad.png[/img]
[/quote]


First off, you can bundle a Python game into a single executable.
Second, with C#/XNA, you still have dependencies.


That said, you are putting the horse way before the cart, you need to learn programming first. The guy behind Terraria probably spent years learning to program before creating that game, which I imagine took a number more years to create.
[/quote]

Wait so you can bundle Python applications into one .exe and have it run even though the user does not have Python? I looked at the best games made in Python, they are not very professional. All the 2D games are choppy, and 3D games aren't very high quality.
[/quote]


Then you [url="http://www.eveonline.com/"]did not[/url] look at the [url="http://www.panda3d.org/"]best games[/url].


And yes, you can.

Share this post


Link to post
Share on other sites
Cham    188
[quote name='Serapth' timestamp='1338854271' post='4946267']
[quote name='Cham' timestamp='1338851825' post='4946258']
[quote name='Serapth' timestamp='1338849981' post='4946249']
[quote name='Cham' timestamp='1338848284' post='4946241']
I am planning to make a game similar to terraria. I haven't seen a game made in Python that comes close to the quality of Terraria.

Also, windows users will have to install Python in order to play my game, which doesn't seem very effecient.

With C# and XNA you don't need to do any of that.

Im just saying. [img]http://public.gamedev.net//public/style_emoticons/default/sad.png[/img]
[/quote]


First off, you can bundle a Python game into a single executable.
Second, with C#/XNA, you still have dependencies.


That said, you are putting the horse way before the cart, you need to learn programming first. The guy behind Terraria probably spent years learning to program before creating that game, which I imagine took a number more years to create.
[/quote]

Wait so you can bundle Python applications into one .exe and have it run even though the user does not have Python? I looked at the best games made in Python, they are not very professional. All the 2D games are choppy, and 3D games aren't very high quality.
[/quote]


Then you [url="http://www.eveonline.com/"]did not[/url] look at the [url="http://www.panda3d.org/"]best games[/url].


And yes, you can.
[/quote]

The best 2D games, I'm not a big fan of 3D Games. If I were to build a 2D game, I should be using PyGame right?

Share this post


Link to post
Share on other sites
Serapth    6671
[quote name='Cham' timestamp='1338856140' post='4946269']
[quote name='Serapth' timestamp='1338854271' post='4946267']
[quote name='Cham' timestamp='1338851825' post='4946258']
[quote name='Serapth' timestamp='1338849981' post='4946249']
[quote name='Cham' timestamp='1338848284' post='4946241']
I am planning to make a game similar to terraria. I haven't seen a game made in Python that comes close to the quality of Terraria.

Also, windows users will have to install Python in order to play my game, which doesn't seem very effecient.

With C# and XNA you don't need to do any of that.

Im just saying. [img]http://public.gamedev.net//public/style_emoticons/default/sad.png[/img]
[/quote]


First off, you can bundle a Python game into a single executable.
Second, with C#/XNA, you still have dependencies.


That said, you are putting the horse way before the cart, you need to learn programming first. The guy behind Terraria probably spent years learning to program before creating that game, which I imagine took a number more years to create.
[/quote]

Wait so you can bundle Python applications into one .exe and have it run even though the user does not have Python? I looked at the best games made in Python, they are not very professional. All the 2D games are choppy, and 3D games aren't very high quality.
[/quote]


Then you [url="http://www.eveonline.com/"]did not[/url] look at the [url="http://www.panda3d.org/"]best games[/url].


And yes, you can.
[/quote]

The best 2D games, I'm not a big fan of 3D Games. If I were to build a 2D game, I should be using PyGame right?
[/quote]

It's the most popular choice, yes.

Again, myself, not actually a huge python fan, so I can't make many recommendations in that regard.

Share this post


Link to post
Share on other sites
Now you have started Python, don't try to learn another language. All the other low level languages will seem much easier once you have learn't Python. And the reason why there aren't many games made in Python is beacause C++ etc are older, more powerful (Alot of programming languages were created in C or C++) and therefore more popular. However, this doesn't mean you can't create a really good game in Python. There's always a first time for everything.

Edit: Also have a look at Blender 3d. It is scripted in Python, but still works without Python. This is because,the core Python modules are contained in the program's directory.

Share this post


Link to post
Share on other sites
t-boy    135
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.

Share this post


Link to post
Share on other sites
Cham    188
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.

Share this post


Link to post
Share on other sites
Cham    188
[b]Fine, I have decided to use Python.[/b] :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 Edited by Cham

Share this post


Link to post
Share on other sites
nooblet    167
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 [b]program[/b]. Make games, make applications, make sexy time, just [i]start[/i] learning and [i]stop [/i] thinking about it!

Share this post


Link to post
Share on other sites
Cham    188
[quote name='nooblet' timestamp='1338925416' post='4946556']
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 [b]program[/b]. Make games, make applications, make sexy time, just [i]start[/i] learning and [i]stop [/i] thinking about it!
[/quote]

Thank you for bringing a whole new field of insight. I am going to work with Python. :) Edited by Cham

Share this post


Link to post
Share on other sites
xhh    136
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.

Share this post


Link to post
Share on other sites
Cagnazzo    140
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 [url=http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/]this[/url]. 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 [url=http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/]this[/url], 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.

Share this post


Link to post
Share on other sites
Cham    188
[quote name='Cagnazzo' timestamp='1339045408' post='4946951']
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 [url="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/"]this[/url]. 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 [url="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/"]this[/url], 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.
[/quote]

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:

Share this post


Link to post
Share on other sites
proto_typical    302
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.

Share this post


Link to post
Share on other sites
It's been almost 2 weeks, so idk you've changed your mind about Python, or already advanced far, but this website might be of some help:
http://www.cs.utexas.edu/~eberlein/cs303e/cs303e.html

This is an old non-majors Introduction To Programming website at UT Austin. It was taught in Python, I actually took this class and enjoyed it, which was one reason I decided to switch to Computer Science. [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]

The website has some really good lecture notes (Under Schedule) for anyone who's never programmed before, and thus shouldn't be too complicated. You can also try some of the labs that were actual assignments given out (Under Assignments), which might challenge you a little bit. There's also some basic logic puzzles under Schedule.

It might be kind of redundant to say now, but I think Python's a great first language to start with. It's much easier to focus on the concepts because Python has such a simple, short syntax. Comparatively, as you probably saw looking at C#, there's a lot more overhead involved even to write something as simple as "Hello World". IDLE, which is usually bundled with Python, is also really great to try out snippets of code and really get to understand them by messing around. Try it out!

The last assignment on that webpage is a little intro to basic graphics programming in Python, which might be good to check out and get your feet wet before you look at something more complex like Pygame.

Share this post


Link to post
Share on other sites
birko19    151
I think your main focus for now should be learning how to program and solve problems before you can try to tackle game development. Looking at your first post, it seems like you never really commited to learning how to program fully.

If I may suggest, C is an excellent language to start with because it's a straight forward structured language. Other languages like C++ or Java are object oriented and in my opinion this is a bit more of an advanced topic. You should focus more on variables, arrays, condition statements, loops, functions, etc. Don't move forward until you're comfortable with these programming concepts. Edited by birko19

Share this post


Link to post
Share on other sites
Serapth    6671
[quote name='birko19' timestamp='1340312707' post='4951497']
I think your main focus for now should be learning how to program and solve problems before you can try to tackle game development. Looking at your first post, it seems like you never really commited to learning how to program fully.

If I may suggest, C is an excellent language to start with because it's a straight forward structured language. Other languages like C++ or Java are object oriented and in my opinion this is a bit more of an advanced topic. You should focus more on variables, arrays, condition statements, loops, functions, etc. Don't move forward until you're comfortable with these programming concepts.
[/quote]

Do not start with C.

If anything, start with C++ and ignore the OO bits. C today is a domain specific language, and frankly the C bits of C++, are often the parts you want to stay the hell away from! Also, the C side of C/c++ refers to a language from 1983... things have changed since 1983. Edited by Serapth

Share this post


Link to post
Share on other sites
birko19    151
[quote name='Serapth' timestamp='1340325225' post='4951554']
[quote name='birko19' timestamp='1340312707' post='4951497']
I think your main focus for now should be learning how to program and solve problems before you can try to tackle game development. Looking at your first post, it seems like you never really commited to learning how to program fully.

If I may suggest, C is an excellent language to start with because it's a straight forward structured language. Other languages like C++ or Java are object oriented and in my opinion this is a bit more of an advanced topic. You should focus more on variables, arrays, condition statements, loops, functions, etc. Don't move forward until you're comfortable with these programming concepts.
[/quote]

Do not start with C.

If anything, start with C++ and ignore the OO bits. C today is a domain specific language, and frankly the C bits of C++, are often the parts you want to stay the hell away from! Also, the C side of C/c++ refers to a language from 1983... things have changed since 1983.
[/quote]

If you do C++ and ignore the OO bits, you're almost doing C anyways. Mind you, the focus should be on learning the main programming concepts, not a language war.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this