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

## Recommended Posts

Ha, now that I've asked one dumb question, let me ask another. What language should I begin with (even if it's not gaming, just to learn basic programming). I've heard Python, I've heard C/C++, I've heard Java and I've heard Direct X stuff. I've downloaded a Python compiler, and it seems simple enough, but is it good to learn with.... Some opinions please?

##### Share on other sites
I personally, would say learn C then C++, but apparently python is easier to learn for beginners (never actually used it myself).

So, try python for a bit and if you like it, concentrate on it. If not, try something else.

What a lot of beginners don't understand (and I suppose there is no particular reason that they should) is that no matter what language you start with, as long as you learn to think about the solution more than the language you are using (it will come with time and experience) then you can learn to use any language on any platform.

##### Share on other sites
I think after surfing through For Beginners you'll have your own answer.

Good luck [smile].

##### Share on other sites
Pick one, any one, its all good. (however, you might want to stick with slightly more mainstream ones. Python, Java, C, C++ are the most common to see on Gamedev it seems. Python and Java can be a little easier for starting, and really aren't as bad as some will make them out to be. If you're starting off, you don't need the 'fastest' running language, but one that is easier to code in!! So what if your first program is using 500% of the resources and time that it could. Unless you're using a Vic20, you're not going to notice the real difference.)

##### Share on other sites
I tought I might give C# a little representation. Like has been said, pick one, and use it. It doesn't really matter.

##### Share on other sites
[opinion]
C++ is bad language to start with. It confuses you with its complexity (no it's not simple and cannot be mastered in just a few weeks!) and that stops you from actually learning *how to program*/make games.

C# and Java are better in that regard, but force the OO paradigm upon you, which is not optimal. Especially considering the huge amount of terrible tutorials out there.

Scripting languages are looked down upon by self-proclaimed "leet" coders, since "it's not real programming".

Just ask yourself what you want to do. Do you want to make your own games quickly, especially in one specific genre? If so - use game maker programs.
Do you really want to learn (game-)programming? Pick a friendly language and go ahead, but don't expect to be able to do anything über-terrific in just a few weeks.

BTW, languages I consider to be "friendly" are mostly scripting languages. Python is fine. Ruby is, too. I would mention Pascal here as well, but everybody hates it [smile].

Basically you can give a few languages a shot and select the one that just "feels right" for you. Just don't let people talk you into using this or that just because "it's what the pros use" or "because xy is too slow" (you'll hear that a lot). Look at some and pick the one you like best.
[/opinion]

HTH,
Pat.

##### Share on other sites
You gain most from learning Java. While C and C++ are both very good languages, they are slowly being *replaced* by higher-level languages such as C# and Java, and they are also easier to understand and learn.

Doing it in Java means you can make games for any operating system, including cell phones, and run it in a browser as an applet or webstart.
You can make both 2D games (Java2D, built-in) or 3D games, using OpenGL.

If you ever go to college/university, then Java is the language that is being taught and used.

I suggest Java, and a good editor. Eclipse is the one I use.

ps. Learning Python is a waste of time, your time is better spent learning Java.

##### Share on other sites
Quote:
 Original post by -xiao-Ha, now that I've asked one dumb question, let me ask another.

Go look at my post in the thread "i know nothing want to learn".

##### Share on other sites
Quote:
 Original post by appelYou gain most from learning Java. While C and C++ are both very good languages, they are slowly being *replaced* by higher-level languages such as C# and Java, and they are also easier to understand and learn.Doing it in Java means you can make games for any operating system, including cell phones, and run it in a browser as an applet or webstart.You can make both 2D games (Java2D, built-in) or 3D games, using OpenGL.If you ever go to college/university, then Java is the language that is being taught and used.I suggest Java, and a good editor. Eclipse is the one I use.ps. Learning Python is a waste of time, your time is better spent learning Java.

Ok, I see your point in the Java thing. But what backing do you have in that Python is a waste of time. I know several people who have tackled HUGE projects (openEQ, for one, which is the EqEmulator alternative to EQLive) using only Python. I've been told by several it is the easiest and best to learn FIRST. But reading up, I seem to keep coming across that Java is bloated and somewhat limited.
The college I'm most planning to attend only has a basic course in Java. The rest are C/C++ Pascal, Basic, Visual Basic, etc.

##### Share on other sites
Seriously, to reiterate what has been said, it doesn't matter. Once you learn the basics, migrating to another language is simple. I started in BASIC, switched to Java, and only used Java for years. Then I learned C# in a matter of hours (it's VERY similar to Java) and am in the process of learning C++ which is going quite quickly (I don't like it as much - all the header files and none of the sexy stuff like Garbage Collection provided by the VM), but it's not proving as impenatrably difficult as I thought it would be.

Anyway, if you want to jump right in Java and C# are currently very popular languages taught in schools and are quite practical. Python is similar to those (a bit simpler), and also a good choice. All three of those can be daunting at first but are designed to be safe so if you screw something up it tells you right away rather than find out you crashed your computer 20 minutes later or having some kind of wierd bug you have no idea where it is. I guess I'd say C#, but it's definitley up to you here - the skills you learn in any language can be ported to nearly any other.

Quote:
 You gain most from learning Java. While C and C++ are both very good languages, they are slowly being *replaced* by higher-level languages such as C# and Java, and they are also easier to understand and learn.

Compiled languages won't be replaced by interpreted languages any time soon. Even with JIT compilation, there is a speed difference.

##### Share on other sites
Quote:
 Original post by -xiao-I seem to keep coming across that Java is bloated and somewhat limited.

Java is just as limited and bloated as any other lanugage. Every language has pros and cons. (also, watch the dates on things, java has improved a LOT since its first 2 years way back when,... whenever)

Sure there are things other lanugages are better suited for, but the same can be said for EVERYLANGUAGE!
Sure, it 'forces' oop onto you, but that isn't really a bad thing. Actually, you can sort of ignore much of it if you choose, but you may as well learn the basics of it. OOP isn't hard after all, and has many good points.

THERE IS NO GOD IN COMPUTERS!!!!

X is not ALWAYS better than Y. (Except in some cases, where something was really just a bad idea from the start.)

##### Share on other sites
Hrm. Well, thank you all for your well-thought-out opinions. You have helped me reach a decision, which I hope is a good one. I'll eventually get to C.

Oh, by the way...what's the difference between C and C# or are they the same thing?

##### Share on other sites
C and C# use fundamentally different concepts. While C is a procedural, low-level language that copiles to machine code, C# is bound to a platform called Common Language Runtime, sticks to the Object Oriented programming paradigm and compiles to byte-code, which is compiled into machine code using a technique called JIT (Just-In-Time) if the application is started for the first time (correct me if I'm wrong here [smile]).

So C and C# are - despite the similar syntax and name - completely different languages.

Good luck,
Pat.

##### Share on other sites
Quote:
 Original post by darookie...C# is bound to a platform called Common Language Runtime, sticks to the Object Oriented programming paradigm and compiles to byte-code, which is compiled into machine code using a technique called JIT (Just-In-Time) if the application is started for the first time ....

[seizure] WHAT?! [/seizure]

Oh, by the way, does my system really have alot to do with limitations? I'm running a P3 864mhz, 128mb RAM, an 8mb integrated Video, WinXP Pro, and uhh...that'd be all the important stuff....will that limit me in any way, or does it really matter if I'm not doing major 3D development?

##### Share on other sites
Your system won't limit you in the choice of a programming language. Even minor 3D development would be a problem, though, as your card most probably doesn't support any form of hardware 3D acceleration.
This will effectively limit you to 2D games unless you are willing to learn how to implement your own software 3D renderer (though there are a few libraries that have quite capable software renderers).
If you consider 3D games as well, you should at least get a graphics card (even an old Riva TNT2 or better yet a GeForce will do).

Regards,
Pat.

##### Share on other sites
Quote:
 Original post by appelYou gain most from learning Java. While C and C++ are both very good languages, they are slowly being *replaced* by higher-level languages such as C# and Java, and they are also easier to understand and learn.

Actually I've found that C++ is adaptable enough that features of other languages tend to get migrated in. If you use the boost library you can use "smart" pointers and avoid memory leaks, plus you have the advantage of speed since it's a compiled language. There are many API's written for C++ and with a proper textbook it's not that hard to learn, though a good teacher can make your learning experience much easier.

Quote:
 Doing it in Java means you can make games for any operating system, including cell phones, and run it in a browser as an applet or webstart.You can make both 2D games (Java2D, built-in) or 3D games, using OpenGL.

John Carmack wrote in his blog at some length about the problem of Java and cell phones, it seems even with the VM he still had to rewrite portions of code for different cell phone architectures. This isn't to say Java is a bad language, the UI code is very elegant and it has support for just about anything you would want to do, but C++ has many API's that do the same thing, and support for "syntactic sugar" like operator overloading and templates.

Quote:
 If you ever go to college/university, then Java is the language that is being taught and used.I suggest Java, and a good editor. Eclipse is the one I use.ps. Learning Python is a waste of time, your time is better spent learning Java.

I've been to two universities and a technical college, and at all three we used C++ exclusively. As for Python, I've used it and found it to be a lot of fun to work with. Blender3D uses it so it would seem you can do 3D work with it just like any other language. You might also try Lua, I think the new Civilization game uses it pretty extensively. In the end it's really up to you, but I would suggest picking a language that is Object Oriented as polymorphism takes a while to wrap your head around. I would recommend trying as many languages as you can, I started on "LogoWriter" and QBasic and I don't think my effort was wasted. If anything the limitations imposed by QBasic made me appreciate features in C++ and many modern languages more.

##### Share on other sites
C# is Microsoft's answer to Java, and is the "flagship" language for the .NET platform.

Java provides its standard class libraries; the C# equivilent is the .NET framework. The .NET platform, however, provides official support for many languages which can play nice together (including one that is roughly Java, called J#, and which will actually compile from Java source).

As noted before, if you know Java you can jump right into coding in C# after about 10 minutes of reading about the core differences.

##### Share on other sites
My issue is a complete lack of money for books. I have a job, but I can barely afford to get a pair of shoes every 6 months (I help with bills...) Our local library only has books on Basic (I looked, I promise) and Pascal. I suppose I'm going to have to find a good Java compiler, sift through some tutorials, and get to work. I can sleep at school :P

##### Share on other sites
You can visit OOPWeb.com for complete free e-books. I hope you have enough time to read a part of them [wink].

##### Share on other sites
A student membership to ACM is $19/year, I think (maybe a little higher at this point). It includes complete access to an entire online library of books that covers virtually every topic. Read about the library and you can actually browse the list of books here. EDIT: I checked, the rate is$42/year... I'm not sure what I was thinking. In any case, it's still a great deal.

Quote:
 I suppose I'm going to have to find a good Java compiler, sift through some tutorials, and get to work.

Not to worry... the jdk at java.sun.com comes with the standard javac compiler and you can even download the bundle that comes with NetBeans, which is a full-blown, professional quality IDE with all of the GUI designer bells and whistles and I think it even has an embedded servlet container if you want to develop web apps.

You won't need all of that at first, but its there if you ever want it. I personally recommend Eclipse (www.eclipse.org).

##### Share on other sites
ｼｲｼｱﾌﾟのファンボイはうるさいだよ.

don't get suck into not using C++. You should try differnt languages and then try to decide which languge you like the best. But before you do that, I think you should start with something easy like basic and learn about loops, differnt type of variables...etc.

##### Share on other sites

And Java registers at 130mb...damn....this could be a long process....

##### Share on other sites
xiao, seriously, you should probably forget about Java (and especially Eclipse, what a godawfully bloated IDE). You have done the right thing from the beginning on - you downloaded Python. Python is a wonderfully elegant language, very easy to learn, yet still extremely powerful. Once you understood the language, I would suggest using PyGame to enter the world of Python game development. Also, a lot of well written guides and tutorials exist for Python.

Disregard the comment about Python being a waste of time to learn, this is completely wrong. Once you understand the logic and thought processes behind programming, you will be able to easily switch between languages. And Python is probably the best beginner language right now. Primarily because it is not a beginner-only language, but definitely prepared for industry strength products. You can still switch to C++ later on, if you need more speed. Or even Java - although I doubt you would want to touch that with a ten feet pole once you experienced Python ;) C# might be a good alternative afterwards too.

##### Share on other sites
I started with C++ without having tried anything else, pretty happy I did.

##### Share on other sites
Well, I suggest trying Python on for size, and after you get the hang of the language (should take about a week at most), take Pygame out for a spin and see how you like it.

That should keep you busy for a while, and after you're bored of Python, try on C or C++ for size. By that time you should have basic programming concepts down pat, so it'll come easier to you.

Good luck!