Some newbies (like me) do love to code in C++
I am not a troll.... If you read the post, it clearly states AAA game engines... Oh ok, you were saying something about *game engines* in C#? Please name a few?
Yes, C++ is currently the go-to choice for AAA engine development, that's correct.
The commonly cited reasons for using it will likely to continue to be good reasons for continued use of C++ in the future. Again, you are correct.
Do those reasons mean it will be the only viable option in the future? No -- of course not. Consider that C used to occupy the role of most popular choice for AAA development and that all the reasons it was a good choice are still valid; the industry has still largely moved on to C++ because it offers us newer features and the potential for easier development and increased productivity. Whilst the majority of reasons for using C++ will likely continue to remain valid, that in no way makes it the only choice. It's likely to remain a popular choice for at least the next 5-10 years, but you simply can not say with certainty (or even any high likelihood) that it will be the only choice.
My biggest question would have to be "why do you care so much"? You're not a AAA engine developer, so you're free to use whatever language you like for your personal projects. If your personal preference is to use C++ then that's a perfectly valid choice, and no one is stopping you.
If you want to develop as a hobbyist or independent developer you can use any language you like.
If you end up doing professional non-games programming you might be likely to use a wide range of programming languages; some of the popular choices include C#, Java, C++ and Python, amongst many others.
If you end up doing professional games programming, again you might be likely to use a wide range of programming languages. Lua, Python, C#, C++, Java and many others are used.
Low level AAA engine development is done by expert programmers with years of experience, and I would be very surprised if any of them knew only a single programming language. If your goal is to eventually work in this field you will need years of programming experience, and by the time you get there C++ may or may not still be the commonly used language; either way, your years of experience will be valuable no matter which language languages you've been using. It's a relatively trivial matter for experienced programmers to pick up new languages, and someone with years of experience will have likely had at least some exposure to a huge range of languages.
If you enjoy programming with C++ then go ahead and use it, and enjoy the experience. The knowledge and experience you gain over the years will be valuable and will serve you well in future development whether C++ is the language you end up having to use or not. It doesn't matter if C++ will still be the language of choice in future, and you can not possibly know if it will be or not.
The commonly cited reasons for using it will likely to continue to be good reasons for continued use of C++ in the future. Again, you are correct.
Do those reasons mean it will be the only viable option in the future? No -- of course not. Consider that C used to occupy the role of most popular choice for AAA development and that all the reasons it was a good choice are still valid; the industry has still largely moved on to C++ because it offers us newer features and the potential for easier development and increased productivity. Whilst the majority of reasons for using C++ will likely continue to remain valid, that in no way makes it the only choice. It's likely to remain a popular choice for at least the next 5-10 years, but you simply can not say with certainty (or even any high likelihood) that it will be the only choice.
My biggest question would have to be "why do you care so much"? You're not a AAA engine developer, so you're free to use whatever language you like for your personal projects. If your personal preference is to use C++ then that's a perfectly valid choice, and no one is stopping you.
If you want to develop as a hobbyist or independent developer you can use any language you like.
If you end up doing professional non-games programming you might be likely to use a wide range of programming languages; some of the popular choices include C#, Java, C++ and Python, amongst many others.
If you end up doing professional games programming, again you might be likely to use a wide range of programming languages. Lua, Python, C#, C++, Java and many others are used.
Low level AAA engine development is done by expert programmers with years of experience, and I would be very surprised if any of them knew only a single programming language. If your goal is to eventually work in this field you will need years of programming experience, and by the time you get there C++ may or may not still be the commonly used language; either way, your years of experience will be valuable no matter which language languages you've been using. It's a relatively trivial matter for experienced programmers to pick up new languages, and someone with years of experience will have likely had at least some exposure to a huge range of languages.
If you enjoy programming with C++ then go ahead and use it, and enjoy the experience. The knowledge and experience you gain over the years will be valuable and will serve you well in future development whether C++ is the language you end up having to use or not. It doesn't matter if C++ will still be the language of choice in future, and you can not possibly know if it will be or not.
- Jason Astle-Adams
I am somhow not able to quote and upvote, but @jbadams nice answer.
The industry changed from C to C++ maybe because,
1. The C++ compiler was able to compile C too, ie it was a superset.
2. There was less legecy and active code, then it is now.
Actually, I used to hate to program in C++, earlier. Then, deducing by the reply to my tweet to John Carmack, I came to the conclusion that 1) C++ is majorly used for AAA game engines. 2) Nothing, could be able to replace it in the large future time frame. The only way to overcome C++ fear was to love it.
Then, I had an idea... Why not ask the game engine developers about this on gamedev? I started a new post, and all I got was C#. That was the dilema.....
If there is going to be a change, then I would be more then happy, if Rust or D get in; but unhappy if Java/C# get in.
The industry changed from C to C++ maybe because,
1. The C++ compiler was able to compile C too, ie it was a superset.
2. There was less legecy and active code, then it is now.
Actually, I used to hate to program in C++, earlier. Then, deducing by the reply to my tweet to John Carmack, I came to the conclusion that 1) C++ is majorly used for AAA game engines. 2) Nothing, could be able to replace it in the large future time frame. The only way to overcome C++ fear was to love it.
Then, I had an idea... Why not ask the game engine developers about this on gamedev? I started a new post, and all I got was C#. That was the dilema.....
If there is going to be a change, then I would be more then happy, if Rust or D get in; but unhappy if Java/C# get in.
I am somhow not able to quote and upvote
You should be able to quote, but up (and down)-voting is intentionally not enabled in our off-topic forums (The Lounge; Comments, Suggestions & Ideas; and Your Announcements) because many of our members feel it is not appropriate that your reputation score should be effected by off-topic discussions.
I started a new post, and all I got was C#.
Well, you aren't a AAA engine developer, and even if you're aiming to become one you'll need years of experience and will probably learn multiple languages before you get there. Expert programmers do not just know a single language -- they know at least a handful and are able to learn more as required. John Carmack (to take your example) definitely knows at least assembly, C, C++ and Objective-C, and I'd be willing to bet he has at least some experience in numerous others. If you want to be a guru programming expert you will learn a selection of languages and choose the appropriate one for the task at hand.
As such, it's not inappropriate to suggest learning a more approachable language that is arguably more suitable for the types of tasks you will be tackling in the shorter term. C# is a great choice for a beginner to game programming -- or programming in general -- and is also a language that is used extensively in the world of professional business programming. It's also a great choice for an independent developer, and is being used more and more by professional games developers. The knowledge gained programming in C# (or any other language) will also give a big head start if you later need to learn C++ (or other languages). I'd say that makes it a pretty good language to recommend to a beginner.
That being said, some people do simply prefer C++ and that's absolutely fine; if C++ is the language you want to use then you're welcome to use it, and you'll find plenty of people willing to help with any problems you encounter along the way. In the meantime, we'll go right ahead and continue to recommend C# (and other languages) as a sensible (and generally more approachable) choice for beginners.
- Jason Astle-Adams
em, you are tempting me to try XNA and C#.... But I will go with C++ with Irrlicht. (thats my final decision).
How ironical that, the fate of lakhs of C#/XNA devs hang with microsoft and there are questions 'will microsoft bring out the next version of XNA for metro style apps?' or more direct ones 'Seeing that microsoft is putting C# on a back burner, what is the future of C#' ?
There are many five-ten year old post claiming that C++ will be used for ten years more!!!..... After 10 years some foolish like me will ask the same thing, and the answer will be '10 years or so' !!!! Similar posts of C#/java can be seen on the forums, claiming that they will be used for ten more years....
Quite foolish of me to start this post. I will live in the present, cause future and past never come!!!
How ironical that, the fate of lakhs of C#/XNA devs hang with microsoft and there are questions 'will microsoft bring out the next version of XNA for metro style apps?' or more direct ones 'Seeing that microsoft is putting C# on a back burner, what is the future of C#' ?
There are many five-ten year old post claiming that C++ will be used for ten years more!!!..... After 10 years some foolish like me will ask the same thing, and the answer will be '10 years or so' !!!! Similar posts of C#/java can be seen on the forums, claiming that they will be used for ten more years....
Quite foolish of me to start this post. I will live in the present, cause future and past never come!!!
How ironical that, the fate of lakhs of C#/XNA devs hang with microsoft
How's that irony? C# devs don't depend on Microsoft - C# is being, or has been, standardized.
XNA is different, but even so, people are working on their own non-Microsoft XNA replacements.
There are many five-ten year old post claiming that C++ will be used for ten years more!!![/quote]
You came to this thread with pre-concieved ideas, and you aren't hearing anything except what you already wanted to hear.After 10 years some foolish like me will ask the same thing, and the answer will be '10 years or so' !!!![/quote]
It's not 'foolish' to ask a question, only to ignore the answer.
C++ is likely to be the primary langauge for AAA engine development for the next ten years...
But it will not be the only one, and others will gain more and more ground against it... IF nothing changes.
If hardware and software architectures DO change (which they already are), the entire concept of an "Engine" will probably change over the next ten years, as we head more to Software as a Service.
Even so, even if I right this second could garuntee that C++ will be the primary langauge used for the next 200 years without change... That would still be for AAA engine development, and may not be the best choice for a beginner. Good programmers must learn multiple different langauges - after you learn your first langauge, each additional language (most of the time) is easier to learn. So start with a higher level langauge like Python, and move to C++ or C# or another language, after two years or so when you logically re-evaluate the situation with the current state of the industry.Quite foolish of me to start this post. I will live in the present, cause future and past never come!!![/quote]
Again, asking questions is never foolish.
Yes, focus on the present and the short-term future.
No, don't assume the future will never come.
Yes, you can be 100% sure the past will never come. (Though you can't be sure it won't repeat itself in a new guise)
Be willing to change as technology changes. But don't change with every passing breeze of technology. And for your first few years, focus on one target, regardless of where technology might be heading.
Here's a hard lesson I've learned: You audience does not care about how you implemented the software. A gamer won't give two shits about whether your game was written in C, C++, C#, assembly, Java, python, flash, silverlight, <insert language> / <platform>. Let me say that again for emphasis. They don't care & it doesn't matter.
Sankrant, a similar metaphor for your quest is like the following:
Sankrant: "Hey guys, I'm new to construction. I heard that the best house builders still use a hammer to pound in nails! What do you guys think? Do you still use a hammer to drive in your nails?"
Game Dev: "Well, sometimes. But a lot of us are using nail guns (I personally use the Nail Pounder 9000). But, a good house builder knows how to use many types of tools to get the job done, so we're not just limited to hammer and nails."
Sankrant: "Rawr! the best house builders still use hammers, so that's what I'm going to do. You're not going to trick me into using a nail gun, nice try game dev! Ten years from now, house builders will still be using hammers!"
Gamedev: "uh... okay? go ahead and use a hammer. knock yourself out. We're just trying to build great houses quickly and nail guns are great tools for that."
What doesn't happen:
Homebuyer: "I'm buying this particular house because it was built using a hammer instead of a nail gun!"
Sankrant, a similar metaphor for your quest is like the following:
Sankrant: "Hey guys, I'm new to construction. I heard that the best house builders still use a hammer to pound in nails! What do you guys think? Do you still use a hammer to drive in your nails?"
Game Dev: "Well, sometimes. But a lot of us are using nail guns (I personally use the Nail Pounder 9000). But, a good house builder knows how to use many types of tools to get the job done, so we're not just limited to hammer and nails."
Sankrant: "Rawr! the best house builders still use hammers, so that's what I'm going to do. You're not going to trick me into using a nail gun, nice try game dev! Ten years from now, house builders will still be using hammers!"
Gamedev: "uh... okay? go ahead and use a hammer. knock yourself out. We're just trying to build great houses quickly and nail guns are great tools for that."
What doesn't happen:
Homebuyer: "I'm buying this particular house because it was built using a hammer instead of a nail gun!"
Eric Nevala
Indie Developer | Spellbound | Dev blog | Twitter | Unreal Engine 4
Here's a hard lesson I've learned: You audience does not care about how you implemented the software. A gamer won't give two shits about whether your game was written in C, C++, C#, assembly, Java, python, flash, silverlight, / . Let me say that again for emphasis. They don't care & it doesn't matter.
Absolutely! Occasionally, your choices of language/engine/library can have an impact on how easy the distribution and installation process is -- although there are often solutions available when such problems do arise -- but excepting those cases, players simply don't care how the game was implemented as long as it's fun and does not suffer from undue performance problems. I made "you think it matters that you're using 'real' languages and 'real' tools" #2 on my list of 4 reasons you aren't a successful indie developer; there's simply no good reason to get caught up in thinking you have to use a certain option if another will be perfectly well suited to the job.
- Jason Astle-Adams
Wow, this guy is extremely biased. I'd say it's good that he enjoys developing in C++, even as a newbie,
but it seems apparent to me that he's either a troll, or that he picked a bad language to start with, just because he thinks that more complex = good.
He's really acting like he knows everything. I didn't know that "C++11 solves the issue of development time, concurrency and learning curve."
I think the learning curve is pretty much the same, isn't it? -I must agree with superman3275 after reading the closed post quoted by jbadams...
but it seems apparent to me that he's either a troll, or that he picked a bad language to start with, just because he thinks that more complex = good.
He's really acting like he knows everything. I didn't know that "C++11 solves the issue of development time, concurrency and learning curve."
I think the learning curve is pretty much the same, isn't it? -I must agree with superman3275 after reading the closed post quoted by jbadams...
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement