Sign in to follow this  

Picking a language

This topic is 3726 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Firstly, I'm sorry if this topic is in the wrong forum. Please move it to the correct area if it is, thanks. I've read the various articles about choosing languages but haven't settled on one yet. I've used Gamemaker for too long now and wish to move onto something more advanced and hopefully into online-enabled games. What I'm looking into is programming 2D games; side-view, top-down and the likes. They wouldn't be basic Mario type things (well, at the start they would be). But I'm aiming to have a developed story-mode and all that good juicyness oh-so-far- away. But I don't know which language to learn. I've 'tried' to learn C++ but it all just confused me, same happened with C#. However maybe I just didn't approach it in the right way. I'm contemplating looking into VB, however reading that it isn't too good with larger programs I thought I should maybe stay away from it. What do you recommend and how should I approach that language? Are the books useful? If so, which ones should I get? Should I spend a month reading the books before touching the PC? If I have left any details out that you'd like to know please say so and I'll explain my position in more detail. Thanks.

Share this post


Link to post
Share on other sites
VB is not really going to be any easier to learn then C#. C++ can be a bit harder because of pointers and memory management.

Learning how to program comes from practice not just from reading a book. You need to be writing simple programs as you read apply what you have learned. Programming is not a trivial thing to learn, it takes a lot of work and a lot of dedication.

With all that said I would suggest sticking with C#.

theTroll

Share this post


Link to post
Share on other sites
Hi,

Though C++ may be hard,its worth the effort learning it.
You may also learn C# but i think C++ is the best.
Good luck.
P.S : You may find nice c++ tutorials on programmersheaven.com

Share this post


Link to post
Share on other sites
Quote:
Original post by TheTroll
With all that said I would suggest sticking with C#.


Agreed, C# as a pretty easy language, good for beginners. But, as it is a general-purpose programming language, you're not going to get anything more than console windows for some time (if you take the time to learn well).

If you really want to play with graphics quickly, you could learn a more specialized programming language such as Adobe Flash's ActionScript, which is very similar to javascript. That's how I started =). Learn ActionScript well and switching to C#, python or java won't be much trouble. Then, learn one of these languages well and switching to C++ shouldn't cause too much trouble. If you only want to get a game done, then you could use a tool such as TheGamesFactory, which doesn't require any programming abilities.

Share this post


Link to post
Share on other sites
Thank you for your replies. I've been looking around and will continue to do so for a couple of more days before trying to settle for one language.
One problem I've been having with C++ is not being able to find tutorials which teach you right from the basic.
As if I was actually learning a new spoken language. What 'red' is and how to say 'my name is...'
I have only found tutorials which expect you to have prior knowledge in programming.

Actionscript has caught my attention and will look into that as well.

The C languages do have my attention as they have the most documentation and are most recognised. However what do you mean by saying the C# "you're not going to get anything more than console windows for some time"?

I also found BlitzBasic. It says its good for 2D programming, does anyone know of its capabilities? Especially in ease of use and multiplayer aspects.
I know you might say that I should concentrate on learning before thinking about online multiplayer. However I don't want to spend precious time learning a language and then find out I won't be able to make my dream co-op online game and then have to learn another language. I know getting that dream game is far away, but I want it at least accessible.

Share this post


Link to post
Share on other sites
C++ is a very powerful language and is industry strength - perhaps you should keep at it. When you have a good grasp of C++ you will need a library of commands for graphics, sound and so on - here's a good one:

http://www.truevision3d.com/

Some good C++ tutorials here:

http://www.learncpp.com/

In the meantime you might want to try something a bit less complicated. Have you tried Cobra? It's a Pascal-like language:

http://www.squeakyduck.co.uk/

But after trying all the 'easier' languages I keep coming back to C, and am now trying C++ - which is even better.

[Edited by - Steve Elliott on November 4, 2007 4:23:40 PM]

Share this post


Link to post
Share on other sites
Quote:
Original post by Iridescent
Thank you for your replies. I've been looking around and will continue to do so for a couple of more days before trying to settle for one language.


Try to avoid this mentality. Programmers don't just "settle for one language"; they're constantly learning new ones, in order to broaden their horizons and their understanding of programming. When you're just starting out, you should pick just one to help you master the basics, but once you understand the core ideas that are common to almost all languages, you'll be able to easily pick up others, as well you should. Learning different types of languages will ultimately give you more ways of solving problems.

As for the language you should start with, I'd recommend either Basic, Pascal, or Python (Python moreso than the others).

Share this post


Link to post
Share on other sites
The above link seems to lead to quite a good guide for learning C++ although I wouldn't of introduced objects where it first does you only really need to know basic data types at that point.

I'd say give it a read stop before covering references and write a few programs. if you can use every thing you learn up to that point there won't be much you can't do. Write a couple of very simple programs then try to be a bit ambitious you'll probably fail to get that program to work but it'll make you appreciate the material to follow and realize why you'd even want to use pointers and classes.

Share this post


Link to post
Share on other sites
No offense to anyone here, but if you look through this thread and check the post history/rating for the various posters, there's a clear trend that the people who suggest learning C++ are the ones with less actual experience.

So, those of you who recommend learning C++ over other languages, what do you base that on?
How much have you used C#? Python? Or any of the other commonly suggested starter languages?

C++ is almost the worst language you can possibly choose to begin with. (C might be worse, but other than that, I can't think of anything that comes close), and no, starting with C++ is not some kind of shortcut to gamedev-mastery, nor does it make you a better programmer.

If you do want to learn C++, this is the book I'd recommend (it's free too, woo)

But honestly? Start with Python or C# or some other language. You'll be better off.

But as said above, don't worry too much. Programmers are always learning new languages, which means that it makes no great long-term difference which language you choose to start with. You're going to learn a lot of others if you want to become a decent programmer in any case. Pick a language and learn it.

Share this post


Link to post
Share on other sites
IMO you shouldn't be so focused on what type of language to learn rather than simply learning how to program. Any of these langauges will teach you the same concepts with regards to programming, and that's really the one and only thing you should care about right now. Since you've already said you're having trouble with C languages, stick to something like VB or Basic (QBasic, Blitz, DarkBasic, etc) - don't worry that they're not widely-used languages in the professional industry. You can still make games with all of them (I know because I've done so in the case of QBasic and VB) and they are easier languages to learn because they have a higher-level syntax that allows you to focus your understanding on the concepts of what a looping structure is, what a decision statement is, what a sub routine is, etc, etc. Once you know that, you're not learning anything new with another language like C++ besides syntax. True, there are things about C++ like OOP that you can't learn from Basic languages, but at least you'll be halfway there already.

Really the whole idea is to never rush into these things. Take your time and do it right.

Share this post


Link to post
Share on other sites
partially agreeing with gaiiden:

It doesn't matter what language you start with, really. I started with LOGO, then GW BASIC, then PASCAL, SQL, C, C++, then EVERYTHING (C#, ruby, perl, python, xsl ...)

You do learn the same important concepts in most common Procedural / OOP languages.

I think that C# and Java are pretty good early languages these days for a few reasons:

1. They are in the same family of languages that most programmers use every day (Pascal, Delphi, Visual Basic, C++, C, C#, Java), so your learning translates pretty readily to most languages you are likely to get a job in.

2. They are intentionally designed languages for the most part. They were both made to be full general purpose OO languages that make the most common programming concepts standardized (they took concepts from C++ and others and CUT features they didn't think they needed to make things easier to learn and more consistent). (more organically grown langauges like C++ and Visual Basic have many more complexities hiding within them do to their many years of slow growth and feature creep)

3. They have a mostly good set of standard libraries included with them, so it is fairly easy to find answers like, how to open files, display windows, talk to databases, etc.

Personally I like C# and use it at work, but I think the main decision their would be: Do you personally use almost all Microsoft products, and want to do things like games ... choose C# first. Do you personally like to play around with things like Max OS X or Linux / FreeBSD ... choose Java first. Because Java is better supported in the non-MS world, but C# creates standard windows apps and windows games a little easier.

Share this post


Link to post
Share on other sites
Quote:
Original post by Xai
partially agreeing with gaiiden:

I don't see where you're disagreeing [smile]

I'm supportive of people starting with C# or Java myself. He said he already had some troubles with those type of languages though, which is why I suggested he take a step back further to Basic languages.

Share this post


Link to post
Share on other sites
Take a programming class since it seems that books just aren't cutting it for you so try something different.
I suggest Python/pygame is the easiest if you just want to make 2D games and ignoring flash here.
I was in the same situation as you a while back and the Python/pygame combo cleared things up quite a bit for me!

Share this post


Link to post
Share on other sites
Sign in to follow this