Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

When I took my Java courses a year ago, I was told that Java is used mostly in the overseas gaming companies while C++ is used here in the US. What languages should I focus on learning in-depth?

share|improve this question

closed as not constructive by Nicol Bolas, Jonathan Hobbs, Jimmy Shelter, Laurent Couvidou, Byte56 Nov 23 '12 at 20:19

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

3  
I suspect the reason you got this response was because mobile development - which has been historically Java-based - was much bigger in Europe than the US (since smartphones were much bigger in Europe than the US), and the C++-based console development studios, vice versa. "Gaming companies" is a wide range of platforms and markets and budgets. –  user744 Jan 25 '11 at 18:09

10 Answers 10

up vote 27 down vote accepted

Common programming languages can be broken up by "type" of game development.

Large, triple-A games that are pushing the envelope when it comes to graphics typically utilized a mixture of straight C and C++ for the majority of the project. Often, a scripting language will be involved--though, this isn't necessarily true of all engines.

Gameplay code is often written in a proprietary language (UnrealScript), Python, Lua (CryTek, Spark Engine), or, in some cases, C# (The Sims 2). A few game engines are starting to support JavaScript (Unity, etc.).

Shader languages are also utilized, of course.

In the mobile realm, iPhones are dominated by objective-C while most other cellphones utilize Java (Android, Brew-based, etc.).

As for indies or small companies, they can be utilizing pretty much anything depending on their target platforms. For instance, C# is common with small time Live developers. Flash developers obviously use ActionScript.

So, there you go. Hope that helps.

share|improve this answer
    
Don't leave out the new crop of web-based Javascript Canvas/WebGL games that run in web browsers! –  ehsanul Jan 26 '11 at 21:19
    
Totally, you're correct. Sadly, there aren't a lot of those games that are being monetized. But, yes, that would be correct to add to the list. –  A.A. Grapsas Jan 27 '11 at 19:50
    
who are you calling small time? –  Spooks May 13 '11 at 15:39
    
Quite a few of the top-ranked mobile games are also written in C++ with an Objective-C/Java wrapper (both iOS and Android allow for that.) XNA (C#) is useful for working with Windows Phone 7 as well as the indie market on XBox. –  Nick Gotch Oct 20 '11 at 0:35

C++ is the lingua franca of the console game industry. C# is used pretty heavily for tools and pipelines.

share|improve this answer

C++ is fairly prominent in the current gaming market. Thought C is still widely used.

When making games, your main focus should not be language but the end product. Never start a project thinking "How can we make this in language X?" but "How can we make this in the best way possible?"

share|improve this answer
6  
Not that I'm disagreeing with you, but the most common languages are arguably the most supported and therefore are more likely to be maintainable than something more esoteric. Choosing popular languages has its benefits. –  Tetrad Jul 15 '10 at 1:50
3  
@Tetrad oh I agree fully. But this has often led down a road where something could have been solved in a much simpler manner with some other tool/language. –  Ólafur Waage Jul 15 '10 at 1:58
    
Though if the language is simpler, but no dev uses it, is it really simpler? LIke, lots of things are way simpler in, say, Haskell, or Python or Lisp than in C++. But is that really so? –  Jürgen A. Erhard Jan 28 '11 at 17:00

The ultimate source is the TIOBE Index. Granted it won't tell you what each language is being used for...

share|improve this answer
3  
The TIOBE index is far from reliable. The only reason that Delphi is at number 11 is that the Delphi community en masse decided to bombard the index and game their way up the chart. –  rtperson Jul 22 '10 at 2:58
13  
Really, all five of them? That must have taken a while. –  Mike Strobel Aug 10 '10 at 14:55
    
-1 that don't answer the question. –  Klaim Jan 22 '11 at 0:06
1  
@Mike One died from... well I can't tell you. It's a secret. –  muntoo Jan 22 '11 at 4:51

As already mentioned, C++ is essentially the language to learn; the major consoles all host a C++ development environment, for better or worse. C# is starting to take off, in XNA-powered games, but is most often also used for tools development.

Lua is also one of the most commonly used scripting languages in games; it's helpful to have at least a passing familiarity with it.

Often the build chain used to build the game will contain scripts written in Python or Perl; it's helpful to be familiar with those too (though it's not a requirement).

share|improve this answer

It is best not to learn one language, but to learn different programming concepts and how to apply them in a few different languages, frameworks and enviroments.

share|improve this answer

Don't forget PHP. It is very popular in MMORGP played via WWW development. In Poland f.g. there is very large number of MMORPG based on Vallheru engine, written entirely in PHP.

share|improve this answer
    
Or for that matter just web development frameworks in general, good mention though! –  Zombies Sep 19 '11 at 17:04

Maybe you shouldn't focus on learning one specific language. You should how to develop.

Yesterday, i downloaded the iOS SDK and Xcode. And i took it right away and made a little tetris. I'm an as3 guy, and i haven't even bother about learning Objective-C. But i was able to make a simple game because i understand how to develop.

So, my point here is that you maybe should spend more time learning new concepts, than a specific language. Or Learn X languages and port your knowledge to other languages.

share|improve this answer

Game development is a different ball game form application programming.

In the world of games it is all about speed. When pushing the envelope with 1080p HD graphics, high sampling sound and nex gen AI every last processor cycle counts.

Historically C and C++ have been the fasts but java is now comparable to c++ in terms of speed in some circumstances.

C++ allows you greater control over the architectural you design on than any other language.

Most senior game developer are well senior meaning they were taught the old school way as they were invented an as such are very proficient in older technologies.

But the most major reason that commercial game development favours C++ is that it has been used for over 15 years in the games industry and there are literally billions of in house and public access library's for it. If you want it chances are someone has built it in c++.

Having said that java is becoming more and more popular as it makes it easier to develop on the wide spread and constantly changing mobile architectural but bleeding edge games will continue to have there core written in c++ for some time to come.

share|improve this answer

Objective-C for iOS devices of course. https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/chapters/Languages.html And most OS X programs are coded in it as well : https://developer.apple.com/technologies/mac/cocoa.html

share|improve this answer
3  
Not backed up at all. –  Jonathan Hobbs Nov 20 '12 at 22:53
    
tiobe.com/index.php/content/paperinfo/tpci/index.html shows it as #3. Although you can argue the merits of the tiobe index, there's no way you can argue Objective-C is not commonly used. –  nevster Nov 21 '12 at 3:53
    
A better justification than than the horrid aggregation of junk that is Tiobe would simply be to reference Apple's developer documentation, which indicates that the preferential toolchain for iOS (and OS X) development includes Objective-C as the entire core API is exposed in that language. –  Josh Petrie Dec 7 '12 at 16:52
    
Ok - added links. I can only imagine the downvotes are from haters or people who are rather ignorant. –  nevster Dec 8 '12 at 13:23

Not the answer you're looking for? Browse other questions tagged or ask your own question.