Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


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


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
43 replies to this topic

#1 Cham   Members   -  Reputation: 188

Like
0Likes
Like

Posted 31 May 2012 - 06:36 PM

Hello GameDev Community,


My name is Chamantha and I am a teenager with aspirations to make something big (a game most likely). I have started coding when I was turning 10-years old. I started off with batch scripting, it was pretty easy. Then I moved into C++, Java, and Python. I also worked on applications in VB.NET and C#.

I seem to have a problem where a learn a lot of content about a language then I just drop it due to doubts. So in my mind I have a big bundle of random notes on coding which have no use. I have decided that I will clear my doubts first and then learn a single language all the way to the end.

I need the help of the community. I am planning to learn Java, mainly to develop a game that will eventually move on to the Android platform. But is this the right choice? I am only 15-years old so my knowledge in math is limited, is C++ a better choice? Now I don't want to start one of those long threads about which language is better because I have read so many of them but I can't come to a conclusion. I would prefer to use Python, it is very simple but I'm worried I can't make powerful games with Python (I haven't seen one popular game coded in Python).

============================================

Summary - Should I learn Java (or C++)? If so what resources should I use to learn them? Should I watch videos from thenewboston's channel or should I get a book?

============================================


Thank you for your time,
-Cham

Sponsor:

#2 Washu   Senior Moderators   -  Reputation: 5417

Like
4Likes
Like

Posted 31 May 2012 - 07:03 PM

Your goal, as a beginner programmer, is to learn to program. What language you choose really has very little meaning here, but there are some choices that are worse than others. Starting out with C++ is one of those bad choices. Java isn't a terrible idea to start with as a novice programmer, nor are C# w/XNA, Python with PyGame or PyGL, or even Unity.

The fact of the matter is: You will end up learning many languages and many tools over your lifetime as a programmer. Don't get fixed on what to start with, as it will rarely impact you in the long run.

In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.
ScapeCode - Blog | SlimDX


#3 VildNinja   Members   -  Reputation: 462

Like
1Likes
Like

Posted 31 May 2012 - 07:18 PM

If you are serious about it you are most likely going to learn all of the above at some point in the future (maybe not VB). The important thing right now is that you learn one language and learn to make a game with it. If you know one language good (rather than knowing five poorly) it's easier to learn other languages later on.

Python is a good language so I see no reason why you should learn Java or C++ right now, if you would rather use Python. You can either use PyGame or Pyglet if you want faster graphics (I used Pyglet for two Pyweek games.. I like it). I don't know any good tutorials, but I'm pretty sure google can help you with that :)

If you insist on choosing between Java and C++ I would suggest Java since it has a lot of usefull libraries and great documentation. But don't rush towards Android before you have made a few games for pc first (the debugging process is rather cumbersome).

#4 Inuyashakagome16   Members   -  Reputation: 835

Like
1Likes
Like

Posted 01 June 2012 - 08:48 AM

C++ is a good choice.. when you already know a few languages really well. At the age of 11 I started learning C++ for kicks and it didn't make any sense to me. When I got into college and had my first python class everything started to come together. By the end of my college days I had two Java class, 3 C++ classes and that was a good starter for C++. But I would recommended as everyone else has said, start with something small, like Python. Once you've made something with Python and you feel ready to move on to a different language move up into Java.

Note: When it comes to C++ in my opinion, C++ is like playing a really hard game once you hit the end on the highest difficulty you'll feel like a master. And even though I've had all those classes and done pretty well in the classes, it doesn't mean that I understand a lot about C++.

#5 Cham   Members   -  Reputation: 188

Like
0Likes
Like

Posted 01 June 2012 - 09:11 AM

Thank you very much for the help Washu, VildNinja, and Inuyashakagone16! I have decided to learn Python first. Then I will move on to Java and then finally C++. I will try to take it slow instead of jumping onto a big project that I cannot handle.

I also have Flash CS5, would learning AS3 be just as easy (or even easier) as learning Python?

#6 Serapth   Crossbones+   -  Reputation: 5691

Like
1Likes
Like

Posted 01 June 2012 - 09:58 AM

Thank you very much for the help Washu, VildNinja, and Inuyashakagone16! I have decided to learn Python first. Then I will move on to Java and then finally C++. I will try to take it slow instead of jumping onto a big project that I cannot handle.

I also have Flash CS5, would learning AS3 be just as easy (or even easier) as learning Python?



Learn Python.

Leave the "and then"'s for later.

ActionScript is probably about equivalent in difficulty to Python, although such things are extremely subjective.

One major plus in AS's ( oops ) favour is the syntax is much closer to C++/Java/C#. Additionally, it is remarkably similar ( derived from ) to Javascript, which is a language that is (sadly) becoming increasingly relevant.

I suppose I should throw in my personal bias... I don't really like Python all that much.

Edited by Serapth, 01 June 2012 - 10:01 AM.


#7 Cham   Members   -  Reputation: 188

Like
0Likes
Like

Posted 01 June 2012 - 01:32 PM


Thank you very much for the help Washu, VildNinja, and Inuyashakagone16! I have decided to learn Python first. Then I will move on to Java and then finally C++. I will try to take it slow instead of jumping onto a big project that I cannot handle.

I also have Flash CS5, would learning AS3 be just as easy (or even easier) as learning Python?



Learn Python.

Leave the "and then"'s for later.

ActionScript is probably about equivalent in difficulty to Python, although such things are extremely subjective.

One major plus in AS's ( oops ) favour is the syntax is much closer to C++/Java/C#. Additionally, it is remarkably similar ( derived from ) to Javascript, which is a language that is (sadly) becoming increasingly relevant.

I suppose I should throw in my personal bias... I don't really like Python all that much.


Since I already have Flash CS5, I will start learning AS3 in order to make simple flash games. Thank you!

#8 prototypical   Members   -  Reputation: 301

Like
0Likes
Like

Posted 01 June 2012 - 10:14 PM

AS3/Flash is a great choice to start with. Mainly because of the ability to easily publish/monetize on the web.

The concepts you need for making games are the same no matter what language you use, so using the one that is easiest to quickly distribute and monetize as a first platform, is a good one.

#9 ChaoSXDemon   Members   -  Reputation: 96

Like
0Likes
Like

Posted 01 June 2012 - 11:30 PM

If you are learning Python, you should check out PyQt, PyGame, and / or PyOpenGL which are GREAT AND AWESOME for your game development :)

I'm currently working on a project that generates natural foot prints (including angels and timing) using PyOpenGL. Essentially it's OpenGL with Qt but in Python.

CXD
Youtube:
My Channel

Video Lessons:
Java Programming Lessons

Tutorials Written (Not-Active):
Introduction to A.I.

#10 Cham   Members   -  Reputation: 188

Like
0Likes
Like

Posted 02 June 2012 - 07:44 AM

Does anyone have any experience with C#? I might learn that after AS3.

#11 frob   Moderators   -  Reputation: 22692

Like
0Likes
Like

Posted 02 June 2012 - 08:28 AM

Does anyone have any experience with C#? I might learn that after AS3.

Yes, it is also a great language.

But as was suggested above, keep away from the line "and then I should learn...." It is a fast track to distraction and undirected growth.

Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I write about assorted stuff.


#12 Cham   Members   -  Reputation: 188

Like
0Likes
Like

Posted 02 June 2012 - 01:14 PM


Does anyone have any experience with C#? I might learn that after AS3.

Yes, it is also a great language.

But as was suggested above, keep away from the line "and then I should learn...." It is a fast track to distraction and undirected growth.


Thank you for the advice, I started to doubt my choices again. Posted Image


Quick question though. I haven't seen any high end games made in Python. Sure there are many 2D games but they aren't really professional. C# seems to have so much potential with XNA Studio and all of that. So in your personal opinion is C# better or more equipped for game development than Python?

Edited by Cham, 02 June 2012 - 02:59 PM.


#13 IronyGames   Members   -  Reputation: 134

Like
0Likes
Like

Posted 03 June 2012 - 04:14 AM

Thank you for the advice, I started to doubt my choices again. Posted Image


Quick question though. I haven't seen any high end games made in Python. Sure there are many 2D games but they aren't really professional. C# seems to have so much potential with XNA Studio and all of that. So in your personal opinion is C# better or more equipped for game development than Python?


Python is great and high-level language, really, but the most times I've seen it used is as exterior libraries complimenting utils for other language-based applications. I might be wrong, but eh.

If you still take suggestions, I'm actually surprised nobody suggested plain C as a learning start, maybe there's a secret codemonkey curse around it? But anyway, I'd say it's an easy to learn low level language, so that's a good convo. Still used commercially, and is the basis for C++ and C#.

There are quite a bunch of tuts around the web. I could give you a few pointers myself every now and then if you prefer, too.

Only setback is that C is useful for core-y stuff, not really object-programming, graphic interfaces and stuff. Still, good to "learn how to program".

#14 TheVirtualDragon   Members   -  Reputation: 237

Like
0Likes
Like

Posted 03 June 2012 - 09:38 AM

I started with VBA (making small applications in Excel etc) when I was 9. Then I moved on to C++, which seemed slightly confusing at first. However, I managaed to learn it by reading a couple of books. I am also learning Python, because it's supposed to be simple and can do some stuff quicker than C++ can.

Meanwhile, I am also making a game (you can track it's progress on my blog: ctrlaltdel314.blogspot.com) in C++ and a game developing library called SFML.
My friend though is making a game in C# and XNA for the Xbox.

So, to answer your questions, I think both C++ and Java are quite good languages to learn - however, java does require additional stuff to be already installed on your computer (most of it usually is anyway). Java can also run on the internet.
Secondly, if you are using C++ (or Java, or Python) then check out SFML- the SImple and Fast Multimedia Library and SDL - SImple Direct Media Layer. SFML is probably easier.

P.S. Don't try to learn more than one language at once. Doing this will confuse you and it will mean that you are not that good at either of them.
P.P.S Check out Nitrome - a company who make free web based games. I get all my inspiration from them.
P.P.S I haven't read all the posts on this thread in detail so I might have said something somebody has already said.

Edited by TheVirtualDragon, 03 June 2012 - 09:38 AM.

What's This?: basically, it's my blog. Click on it.

#15 Cham   Members   -  Reputation: 188

Like
0Likes
Like

Posted 03 June 2012 - 03:57 PM

Oh my good god, I just spent a lot of time on C# but it seems like the wrong choice! I've seen a tutorial on how to make a 2d game in C# it looks way over my head.

Python would be easier, but I just can't choose! Posted Image

Java is support by a lot but it seems just as difficult as C#.

C++ is just obviously way over my capability.

I feel like quitting, this is so hard to choose.

Edited by Cham, 03 June 2012 - 03:59 PM.


#16 Inuyashakagome16   Members   -  Reputation: 835

Like
0Likes
Like

Posted 03 June 2012 - 04:25 PM

Lmao, then go with python. :) Go very slow through it and for the love of everything, READ. Too many people just go in and look at the code and what certain things mean and continue on. You're learning now, which means everything you learn now will make the way for the future.

#17 Cham   Members   -  Reputation: 188

Like
0Likes
Like

Posted 03 June 2012 - 05:26 PM

Lmao, then go with python. Posted Image Go very slow through it and for the love of everything, READ. Too many people just go in and look at the code and what certain things mean and continue on. You're learning now, which means everything you learn now will make the way for the future.


If I were to create a 2d small rpg, would python do the job? Is there any visual engine I can use (for c# or python)?

#18 Aldacron   GDNet+   -  Reputation: 3270

Like
0Likes
Like

Posted 03 June 2012 - 08:18 PM

If I were to create a 2d small rpg, would python do the job? Is there any visual engine I can use (for c# or python)?


Absolutely. The go-to library for 2D game development in Python is Pygame.

#19 t-boy   Members   -  Reputation: 135

Like
0Likes
Like

Posted 04 June 2012 - 01:46 AM

Cham,

It is difficult to choose a language as there are so many choices :) I don't think anyone here can tell you what too learn, although we can all
give you our opinion on what we find useful.

Many teenagers start out with Python, it is easy to get started with and make something fairly quickly.

I would prefer to use Python

, it is very simple but I'm worried I can't make powerful games with Python (I haven't seen one popular game coded in Python).

Look up Panda3D, you can use Python to create your games :)

Heard of Severance: Blade of Darkness? although the engine was primarily coded in C++,
Python was also used by the developers to create scripts for the game.

Most individuals will suggest that you just learn a language as it doesn't matter which you pick, well... In my experience, it does matter, if your going to spend
your time learning a language it is wise to choose a language that your going to enjoy using.

I use Java (Android development), C# (PS VITA development) and Python(Panda3D, Raspberry Pi :) )

You can't go wrong by choosing Python my friend ;)

#20 Inuyashakagome16   Members   -  Reputation: 835

Like
0Likes
Like

Posted 04 June 2012 - 05:34 AM

As they said, both PyGame and Panda3D will do what you want. :) Even though Python is a (sort-of) simple language doesn't mean it can't make games. :) I suggest you start with Python as I've stated before. :) Good luck




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS