Sign in to follow this  
torarin

Best language for beguinner?

Recommended Posts

Im trying to create an easy 2D game, and maybe later a 3D car game.
Im wondering what programming language to learn.

From what I heard Pygame, Python, or XNA are the best ones.
I've tried Yoyo's Game Creator but it was impossible because
there wasn't any books or tutorials on how to master it.
So I understood that I need to learn programming once and for all.

Im a Psychology major, so one of the motivations is to be able to
make "psychology games" and psychological tests.

For this purpose what would you recommend?

Share this post


Link to post
Share on other sites
I have never done Pygame or Python before so I can't really compare with that. I started learning programming on Pascal which is supposed to be popular amongst collages. I found Pascal to be quite good to learn on.

Share this post


Link to post
Share on other sites
Both Python and C# (XNA) will work great for what you're doing, and both are great choices. You really can't go wrong, I'd just look at some code for each and pick whichever you feel you can read better.

Share this post


Link to post
Share on other sites
I actually started my programming journey with BlitzBasic. It's a nice little indie language. I think python would be about the same idea as BlitzBasic. Python like blitz basic is built to be simple, and allow for rapid production. Yes, this makes the learning curve much lower.

But, I would not recommend python as a starting language. Instead, I think C#(XNA uses C#) would make a good starting language. It is also much more common or will become more common than python. In other words, strong knowledge in C# will look more impressive on a resume than Python in my opinion. It also means, that you will be able to stick with a single language into more advance areas.

<Edit>I think you may also find the documentation is more accessible for C# than python. But I didn't spend that much time looking.

Share this post


Link to post
Share on other sites
Thanks for answers. I checked out both languages and Im still somewhat unsure.
But It seems to me that Python is somewhat easier and more intuitive.

Kinda difficult to choose since you all disagreed so much on what language is the best. :)

Share this post


Link to post
Share on other sites
There is no absolute answer to "What programming language should I learn first?", it is more of what do you feel will work best for you.

This requires research into the different languages and API's available to you. Some may be harder to setup but may feel more intuitive for you in the long run.

C# and XNA - Fast way to get things running, in my opinion great for smaller games and even some larger games if you can optimize things. Easy to setup, plenty of tutorials out there.

C++ with DirectX or Opengl - C++ is harder to fully understand but I feel is quite once an understanding of why things were done a certain way(others may not agree). Doesn't nicely hide all the lower level things like XNA does, but this is a benefit and a negative at the sametime. Those negatives though won't normally come up when begining game dev.

Comes down to pick what you believe is most suited for you, but do some research first.

Share this post


Link to post
Share on other sites
Thanks for answers, I looked at some of the codes out there.
And I think I liked Python best, it seemed very logical to me.
C# looked decent as well, but somewhat more codes that "doesn't do anything just needs to be there"( as it seems to me as a newbie).

Share this post


Link to post
Share on other sites
Quote:
Original post by JonConley
Those negatives though won't normally come up when begining game dev.


No, the negatives of C++ are there from the very start, there is no getting away from them. Now, you might not be aware of them but that in fact makes it WORSE rather than better.

While there are a few dissenting voices the general recommendation here is to start with C# or Python. Both of these make it easier to learn to program (the goal here) without worrying about the pitfalls and problems something like C++ brings with it.



Share this post


Link to post
Share on other sites
There is a few things to consider regarding C#

For the windows platform I would strongly consider C# due to its strong relation with the .NET platform, its connection to ASP, and also as the native choice for forms applications (RAD). Combine that with the strength of Visual Studio and the MSDN documentation, and you got a pretty serious development studio.

I don't mean to underestimate Python though, it also has a lot going for it and they are both good choices for games. But, if GUI, web development and windows integration matters, I would seriously consider C#.

Quote:

C# looked decent as well, but somewhat more codes that "doesn't do anything just needs to be there"

I wouldn't worry about that. Unlike Python, C# has a lot of syntactic similarities with C++ and Java, something that could be an advantage too. I think all the languages we have discussed are pretty efficient syntactically and free of redundant constructs.

Of course, the fact that C# is a statically typed language makes the syntax a bit more "picky", but that also has the advantage of making the language slightly "faster" at runtime, which I believe it is.

Yet another thing to consider is the fact that C# is compiled while Python (usually) is interpreted on the fly. This could have an impact on things like deployment, as well as runtime efficiency. When it comes to writing server maintenance and configuration scripts its hard to beat Python, or Perl for that matter.

In the long run you may want to consider learning both =)

[Edited by - pulpfist on October 12, 2010 6:24:24 PM]

Share this post


Link to post
Share on other sites
actually there is a book on game maker, it's titled "game maker apprentice". and i think there is a new one already coming out. it seems to me that game maker managed to find a niche market and do it best - click and create 2d game development, both for win and mac.

darkbasicpro is still active, and free (in a sense, go to the website for more info), and capable of doing 2d and 3d. a good thing to understand the game logic and math aspect instead of spending time with libraries, compilers, linking, etc, etc. since it based on basic, it's a good starting point. trust me, you don't want to understand OOP, headers, lib, sdk, api, screen coordinates, matrix, game logic, all at the same time.

i'm NOT saying you shouldn't start to learn things one by one, a language first, then OpenGL/DX, then going into sound OpenAL/FMOD, and then into physic (Bullet, etc). Of course, object loading, image loading, etc, etc.

So if you want a beginner language that focus on the game dev aspect, before you feel confident enough to move into real development setting, darkbasicpro is quite okay.

Share this post


Link to post
Share on other sites
Quote:
Original post by phantom
Quote:
Original post by JonConley
Those negatives though won't normally come up when begining game dev.


No, the negatives of C++ are there from the very start, there is no getting away from them. Now, you might not be aware of them but that in fact makes it WORSE rather than better.

While there are a few dissenting voices the general recommendation here is to start with C# or Python. Both of these make it easier to learn to program (the goal here) without worrying about the pitfalls and problems something like C++ brings with it.


Now, now. Be fair. You can sidestep most of C++'s beginner problems by being properly introduced to the language. Never-mind the fact that nobody actually does teach it properly, everyone insists on starting with char arrays and pointers.

Also never-mind the fact that even if taught correctly a new programmer will inadvertently stumble into a dark pit (some kind of low level language feature they are unfamiliar with) from which they can see no light. At around this point they are likely to be eaten by a grue...

Yeah, Python or C#.

Share this post


Link to post
Share on other sites
Thanks guys, really great suggestions.
What are the pros and cons of DarkBASIC vs Python and C#?

EDIT: I looked at some DarkBASIC code and it looked really simple.
I remember using the Visual Basic language when I was a teen and having
lots of fun with it. I've looked at codes from both BASIC, DarkBASIC, Visual Basic, and QBasic and I really loved the simplicity of it.
The con of DarkBASIC though is that it can only be used for game making
and not applications?

Do you think I should even consider learning any of those before Python or C#?

[Edited by - torarin on October 13, 2010 3:21:11 AM]

Share this post


Link to post
Share on other sites
I would like to put my idea for a best first language, but it feels like I've
been doing that a lot lately. Why don't you search the forum, there are
books worth of pages here, only discussing the best first language!

-Best of luck finding the best language for you to start with!

Share this post


Link to post
Share on other sites
Quote:
Original post by torarin
Thanks guys, really great suggestions.
What are the pros and cons of DarkBASIC vs Python and C#?

EDIT: I looked at some DarkBASIC code and it looked really simple.
I remember using the Visual Basic language when I was a teen and having
lots of fun with it. I've looked at codes from both BASIC, DarkBASIC, Visual Basic, and QBasic and I really loved the simplicity of it.
The con of DarkBASIC though is that it can only be used for game making
and not applications?

Do you think I should even consider learning any of those before Python or C#?


Ahh, I remember DarkBASIC! I didn't know it was still around. Anyway, you don't, and I wouldn't recommend you learn any BASIC variant, it's unnecessary.

I'd recommend you go with Python, or C#. And between the two, I'd recommend C#, because it's easy to download Visual Studio and start building things straight away, slightly more so than Python (in my experience).

Here's a link to the free version of Visual Studio, Visual Studio Express:

http://www.microsoft.com/express/Downloads/

You will of course want the C# version, should you choose to try C#. And some language tutorials can be found here:

http://www.csharp-station.com/Tutorial.aspx

Share this post


Link to post
Share on other sites
I would recommend Java. IDE (probably NetBeans or Eclipse) support is great, language is simple to learn, IDE writes half of the code for you.

Java standard library has support for 2D graphics, sound, networking, windowing, everything crossplatform. It's a viable alternative for C++ (as long as you're not writing AAA games). As an example of a popular Java game (some people like to rate languages by amount and popularity of games written, which is wrong ;f) you have Minecraft, which you must have already heard about.

Share this post


Link to post
Share on other sites
Actionscript is a fun language. It can either be used in a Unity style, and written in small chunks in Flash, or used to develop a complete program in FlashDevelop/Flash Builder. I'm not sure how accessible it is for a beginner.

Libraries such as flashPunk and flixel are great ways to start.

Share this post


Link to post
Share on other sites
C# or Python are both great. But if you are planning to go into the industry, C# is more common along with C++. otherwise if you are doing game programming as a hobby, any language is fine. I learned C++ before learning C#. I would say that is not recommended because the learning curve for C# would of felt much lower than C++.

Share this post


Link to post
Share on other sites
Quote:
Original post by phantom
Quote:
Original post by JonConley
Those negatives though won't normally come up when begining game dev.


No, the negatives of C++ are there from the very start, there is no getting away from them. Now, you might not be aware of them but that in fact makes it WORSE rather than better.

While there are a few dissenting voices the general recommendation here is to start with C# or Python. Both of these make it easier to learn to program (the goal here) without worrying about the pitfalls and problems something like C++ brings with it.


You misunderstood what I was saying. I also did not state what I meant very clearly. I mean the negatives of not having low level control (like XNA and C#). Having access can speed up a game quite a bit but ONLY if you need it to be sped up. Which in the beginning of game development isn't typically an issue.

The positives for not having the low level access is that it keeps things nice and clean. Which is quite essential to an easier understanding of code.

Sorry for the misunderstanding.

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