What language does what?

Started by
26 comments, last by 3Ddreamer 11 years, 5 months ago
Hello,
I am very new to game programming and am still deciding what language to chose. I was wondering if someone could tell me the basic languages and what they are used for/best suited to. All I know is that Minecraft uses Java and Perl is for advanced webpages.
Thanks, Owen
Advertisement
For someone who is just starting out, I would suggest a modern, high-level language, with a sizable community, and a wealth of resources.

More specifically, I would suggest Python, and my video tutorial series: http://www.youtube.com/playlist?list=PLDFB7FFF90EE6F0C1

That said: You really don't need to worry about "picking the right language" - As long as you start somewhere, you'll learn the basics of programming no matter what language you start with, and that should be your initial goal.

+---------------------------------------------------------------------+

| Game Dev video tutorials -> http://www.youtube.com/goranmilovano | +---------------------------------------------------------------------+
This is what I think:

C: general purpose language, has some nice libraries for game developement, like SDL and Allegro
C++: seems to be very popular for game development, provides OOP features to allow easier OOP than in C, and other features that C doesn't have
Objective-C: a superset of C, also provides OOP features, I've never used it though
C#: never used it

Java: has OOP features, and runs on any machine that can run a Java virtual machine. I usually see it used for non game programs, but thats just me. It has a built in library called swing that allows you to make GUI for your programs.

python: interpreted language, a lot less typing compared to C or Java. There is a SDL wrapper called pygame. Great for actually writing a game, instead of braces and semicolons.

This is what I think I know, might be wrong though. I suggest python + pygame as a starting point.
As a beginner interested in games, I recommend Python or C# for starting out. The exact one doesn't matter - flip a coin if you like. I would advise against a low level language like C or C++ as your first language.

Enumerating all other programming languages, and their strengths and weaknesses in different domains would be tedious and I suspect less than useful to you. There is no universal right answer, and technologies are fast moving targets. People manage to make amazing games in all sorts of programming languages, so don't fret.
If you're mostly going to be self-teaching, I would suggest either C# or Python. Java is a reasonable answer too, but C# is the nicer of the two languages, and they more or less fill the same niche.

Modern C++ (That is, C++11) is actually a whole lot nicer than "old" C++, and its not nearly as harsh for a beginner as it used to be. In a few years, after all the compilers are a little bit more similar and far along on implementing the new standard, and more resources are created for it, it'll actually be worth recommending again. Until then the information landscape and confusion about which compilers support which features is probably too confusing for a complete beginner.

throw table_exception("(? ???)? ? ???");

Another vote for Python! It's a popular and expressive language that is used extensively both within the games industry and for more general programming tasks. It's a great language to learn with, but it's also one that will remain useful to you if you want to continue using it. You might try the freely available Thinking In Python, A Byte of Python, or Learn Python The Hard Way for learning texts.

Python was used extensively in EVE Online and Disney's Toontown Online, and as a scripting language in Civilization IV. You can read a few quotes about the language on the website.


C# or Lua are good second choices if you're looking for alternatives.


Almost any language -- excepting domain-specific and highly specialised languages -- can be used for almost any purpose, and while there are certain advantages and disadvantages a lot of it comes down to personal preference or is based upon things that change rapidly over time. Skilled professional programmers normally learn and use many languages during the course of their career, and you shouldn't be overly worried about trying to choose an ideal first language -- rather it's more important that you choose any language and begin the learning process.

Hope that's helpful! smile.png

- Jason Astle-Adams

Hello there friend I'd would recomen Lua (http://lua.org) which is a very simple and clean Language and Love (http://love2d.org) which is a framework writen by Rudy, It is very easy to learn, with Love and Lua you will be writing games in no time.
Python seems like a god one but it seems that it is more web development rather than games. My ultimate goal with programming is to create a game like Civilisation (a simpler version and a game like Minecraft. Java sound good? One of my friends knows Java so that is a bonus for it as I can get help from him.

Python seems like a god one but it seems that it is more web development rather than games.

Python is just fine for games. You have access to many libraries such as PyGame, Panda3d, and Pyglet as well as bindings to libraries originally written in many other languages such as PySFML, PyOgre and many others. You can also use the IronPython implementation to access any .NET libraries or bindings.

Examples of games using Python include EVE Online, Toontown Online, and Pirates of the Caribbean Online. It can also be used as a scripting language, as was the case in Civilization IV.

Python would be more than capable of creating a game similar to Civilization or Minecraft.


That being said, if you really prefer Java it's also a perfectly viable option that's quite capable of your goals.

- Jason Astle-Adams

I think I will end up going with Java and maybe learn Python at a later point. One last question, would it be possible to make a game like Civ in Java? (That is worded wrong, I know I could but I suppose my question is, is it relitivly easy?)

This topic is closed to new replies.

Advertisement