Hello, the question “What Language Shall I Use to Develop my new Game” is really very common and many people question themselves with this.
A more viable answer to this question is that it depends greatly on the kind of game that you want to develop, publish and what you want to achieve.
Nowadays platform like “Steam” is one of the first things that come to mind when we talk about game distribution, especially with Steam Greenlight, this has become a sort of goal in the development. The good news is that Steam does not care too much about which language you are using in your game, all kinds of games regardless of language are “welcome” on Steam. There has games from simple Flash games to unity or something more customized. With this, you should worry about something else, if you are interested in having your game on iOS (iPhone, iPad, iPod) or Android (most other SmartPhones).
When we talk in development for iOS and crave to launch a game or application in Apple Store, the most convenient is to utilize some kind of framework or application like XCode that makes use of the language Objective C, personally I never care about the level of learning difficulty of a language , would not say that is irrelevant, but generally sometime I spent five times more on design than programming a game. So for me, spend a little time more to learn a new language ends up being a bit substantial . I write this because speaking humbly I consider the Objective C language itself relatively complex. There are some applications like XCode itself that helps a lot in developing applications, but for games there are frameworks that will make easier to work on like Cocos2d that I find extremely interesting (and you can follow my tutorial of Cocos2d here).
If you don’t care too much about the Apple Store, and your main objective is the overall Smart Phones using Android and you definily want to use the Android Market or Google Play Store, you have some options more viable and personally I consider the simplest one that is to develop in HTML5 which is a relatively a simple language and this stood out very well in the current market, another option is to develop in java using the ADT (Android Development Tools), the biggest advantage of HTML5 that is a language extremely affordable and almost every Smarthone today can run it independently using iOS, Android or Windows Phone.
Finally we have in this mini-tutorial Windows Phone that uses the XNA and personally I love the XNA, it is an extremely practical and robust language, for those who never heard of XNA, it is a language that makes use of Microsoft DirectX, ie with minor adaptations to your game it can run on Windows, Xbox or Smart Phones with Windows Mobile and of course you can provide your application or game to the “Windows Store” or “Market Place” from the Microsoft.
A question I leave open is “Flash” as an alternative, I really enjoy Flash and worked with it enough time, but from the advent of iPhone it has lost a bit of his market position. I believe that Flash and its ActionScript is one of the easier options when it comes to programming, if you do not have any experience in the area of programming maybe you should perhaps try to work out something in Flash. The Flash itself allows you to export to iOS and with some plugins you could easily export to HTML5, but inform yourself before the process, because there are large differences between ActionScript 2 and ActionScript 3. That may impair the future of your game or application.
The question may be even a bit more complicated than this all, because I spent a viewpoint more focused on the distribution of a game, but other issues should be considered, such as “My game will be 2D or 3D?”, “Isometric, platform adventure? “and many others not discussed. There are thousands of other possibilities and ways to develop a simple game like using Unity or Gamemaker that greatly makes easier all of this.
In general my conclusion is that if you’re developing your first game, do not worry so much about the language, find a language in which you feel more comfortable, after you finish the development of your game try start to worry about porting it for other language or platform that you desire. Anyway a more practical solution that I try to apply it sometimes is to develop a game in a framework that is more “practical” and that has a certain simplicity to move to other codes, a good example would be again the Cocos2d, which has a version in XNA , HTML5 and Objective C, ie if I develop a game using the Cocos2d framework independent of language, I can port this game to other languages into a more practical way.
Well that’s all guys, I hope you have understood my English, if you has some question, or disagree with something just comment. Good luck. 🙂