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.

Is it more "efficient" to develop games with languages you're good with and like best rather then the "best" language?

For example: I like C# (It's My First Language) and I'm really good at it and used to how it works. I'm not as good with C++; I'm kinda slow at it because I don't prefer how the systems work, like I think int a[] is not as good as int[] a.

Would it be better to go with what I know best or what's the "best" available?

share|improve this question
    
I'd say in general it's better to work with what you know unless you know there's something it can't do that your project will need. At the same time, it will be immensely helpful in the long run for you to learn how to ignore 'syntactic sugar' issues like the specific layout of declarations; in the long run, you should be able to effortlessly read either of the two declarations you listed (or 'vector<int> a', or many others) without having to think about it at all. –  Steven Stadnicki Nov 6 '12 at 6:29
18  
If your stance on language differences is along the lines of “int a[] is not as good as int[] a” you should probably not trust your own preferences. –  Sam Hocevar Nov 6 '12 at 8:29
    
Counterquestion: "Is it more efficient to build a dog shed using tools I like?" It seems like you're just asking how to get started, which isn't really appropriate for the Q&A format. –  Eric Nov 6 '12 at 10:08

5 Answers 5

There isn't really a "best" language to use for game development. What goes into the consideration of a language is what your target platform is, what criteria your architecture must meet, and, yes, what your preference is.

For example, if you are developing for an Apple product, you might benefit from using Objective-C. If speed is paramount (perhaps you're doing something incredibly CPU-intensive, or even GPU-intensive and use some third-party library) then C++ is probably necessary. If you want to get something up and running as fast as you can, and would like to iterate quickly, then a scripting language is the way to go.

As far as workflow is concerned, things would indeed move faster if you choose a framework which is based in a language you are familiar with. That's not to say you shouldn't shy away from a challenge and learn the ins and outs of an entirely new language :) (but that's just my opinion).

To sum up: it depends on what your goals and requirements are, but if you're just starting out, I'd recommend using something you're familiar with.

share|improve this answer

Depends on what you like. Assembly would be a horribly inefficient language. PHP won't apply well to non-website games, C won't work well with browser games.

Generally, languages like C, C++, C#, Java are good mid-level languages that can create almost any kind of game well. Go as high level as you can, then move lower level when you need to optimize.

I'd recommend you decide exactly the requirements for the game first, then figure out if your language of choice can handle it. Chances are someone made an engine that does do it.

share|improve this answer

Read this answer first. It's about Java, but most points should apply to C# as well. You are asking two different question: first if it is more efficient to use favorite language and second is it better to go with it. Neither question has a direct answer.

Is it more efficient to use my preferred language?

In my own experience if you don't run into bad obstacles, I would say yes. You can produce code faster and with less bugs. You have familiar toolchain and you can probably reuse more of your existing code. On the other hand there is a risk of running into problems which are not solved very well in your preferred language and you might end up spending quite a lot of time with the issue. Available libraries and platform integration such as installation process are examples of these kind of problems. You should try to research any potential issues beforehand to ensure that they won't cause big problems later on.

Should I use my preferred language?

This really depends what you are doing, what are your goals and what is your team. Are you aiming to finish a commercial high-quality game? Are you making a game just for fun? Are you doing this on your own or are other programmers involved or how possible is it that others will join? What new do you want to learn while making the game? Do you want to be a little bit exotic in the choice of language? And also is your preferred language proven to be good enough for making high quality games? C# and many others have been, but not all languages have.

If you are doing this just for your own pleasure, choose what you like the most. I chose Java as I like it more than C++ and I've been very happy with the choice. It makes the development fun and you can better consentrate on actually programming the game.

share|improve this answer

It's always more efficient in terms of speedy development time to work in the languages that you are most familiar with, but there are frequently reasons to use other languages

  • To learn another language
  • Features of another language, for example, using Objective-C to target iOS
  • Your team is using something else

I generally recommend using the best language for the target result, even if you are not the best at it, since you will get better with experience, and also important, when you get stuck on things, when you ask for help, you don't receive the reply "I don't know, I always use $other_language!". However, if I am writing a quick-and-dirty program for myself, I'll usually write it with whatever seems easiest and quickest. It depends on how nice you want the result, and how much pain it is to do it the nonstandard way.

A random comment: if you are using C++, I recommend using std::vector (or any of the other containers) over int a[].

share|improve this answer

Programming languages are, in a sense, just tools. Use the one you're most proficient with and the one that makes the most sense for your project.

You obviously don't want to write a video game in COBOL. While you obviously can program anything in any programming language, it's more painful in some than others.

But yea. C# should be fine. Depending on the codebase (engines like Panda3D or the Dreaded engine -- the later formerly known as the id tech 4 CDK -- are written in C++, despite what language people code their games in) you should get performance close to or exactly the same as some of the fastest C++ game engines.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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