• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Cham

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

43 posts in this topic

[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
0

Share this post


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

Share this post


Link to post
Share on other sites
[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?
0

Share this post


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

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

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites
Take a look at [url="http://kivy.org/#home"]http://kivy.org/#home[/url]

see what you think :)
0

Share this post


Link to post
Share on other sites
[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
0

Share this post


Link to post
Share on other sites
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!
1

Share this post


Link to post
Share on other sites
[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
0

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites
[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:
0

Share this post


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

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

Share this post


Link to post
Share on other sites
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
0

Share this post


Link to post
Share on other sites
[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
0

Share this post


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

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  
Followers 0