Jump to content

  • Log In with Google      Sign In   
  • Create Account

Some newbies (like me) do love to code in C++


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • This topic is locked This topic is locked
36 replies to this topic

#21 sankrant   Members   -  Reputation: 121

Posted 28 September 2012 - 09:50 PM

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?

Sponsor:

#22 jbadams   Senior Staff   -  Reputation: 19340

Posted 28 September 2012 - 09:55 PM

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.

#23 sankrant   Members   -  Reputation: 121

Posted 28 September 2012 - 10:13 PM

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.

#24 jbadams   Senior Staff   -  Reputation: 19340

Posted 28 September 2012 - 10:30 PM

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.

#25 sankrant   Members   -  Reputation: 121

Posted 28 September 2012 - 10:37 PM

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!!!

#26 Servant of the Lord   Crossbones+   -  Reputation: 20990

Posted 29 September 2012 - 10:02 AM

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!!!

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' !!!!

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!!!

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.

Edited by Servant of the Lord, 29 September 2012 - 10:03 AM.

It's perfectly fine to abbreviate my username to 'Servant' rather than copy+pasting it all the time.
All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.
Of Stranger Flames - [indie turn-based rpg set in a para-historical French colony] | Indie RPG development journal

[Fly with me on Twitter] [Google+] [My broken website]

[Need web hosting? I personally like A Small Orange]


#27 slayemin   Members   -  Reputation: 2906

Posted 30 September 2012 - 07:29 AM

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!"

Edited by slayemin, 30 September 2012 - 07:30 AM.

Eric Nevala

Indie Developer | Dev blog


#28 jbadams   Senior Staff   -  Reputation: 19340

Posted 30 September 2012 - 07:50 AM

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.

#29 SuperVGA   Members   -  Reputation: 1118

Posted 30 September 2012 - 02:06 PM

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...

#30 szecs   Members   -  Reputation: 2185

Posted 30 September 2012 - 02:27 PM

Isn't there an age limit on the forums? Not that it's hard to trick that but anyway....

#31 Memories are Better   Prime Members   -  Reputation: 769

Posted 30 September 2012 - 03:19 PM

A language war thread in this section /sigh

I have a question, why do people stick with one language only when its perfectly fine, acceptable and makes sense to do projects in multiple languages based on requirements?

If you got a game that worked and it was built with C# and C++ would you stop playing because the company didnt use C++ only? NO!

These language war threads make no sense at all anymore, we have already seen massive game companies (Blizzard, CCP etc) use multiple languages for various parts of their game or game tools / features, so 'C++ for all' doesnt even make sense

War threads only really make sense when you can use one of the products / tech efficiently at a time, since multiple languages can be used in a project there is no reason for a war

#32 Radikalizm   Crossbones+   -  Reputation: 2975

Posted 30 September 2012 - 03:41 PM

A language war thread in this section /sigh

I have a question, why do people stick with one language only when its perfectly fine, acceptable and makes sense to do projects in multiple languages based on requirements?

If you got a game that worked and it was built with C# and C++ would you stop playing because the company didnt use C++ only? NO!

These language war threads make no sense at all anymore, we have already seen massive game companies (Blizzard, CCP etc) use multiple languages for various parts of their game or game tools / features, so 'C++ for all' doesnt even make sense

War threads only really make sense when you can use one of the products / tech efficiently at a time, since multiple languages can be used in a project there is no reason for a war



Not trying to point out or offend anyone here, but imo making claims like "This language is the best, and all you other guys suck for not using it" (statement blown up for dramatic effect) or sticking with one language just because "The pro's use it" says a lot about that person's competence as a developer. You could even go as far as to say it is a perfect example of the often-quoted Dunning-Kruger effect.

As stated so many times before: languages are tools, choose the right ones for the task you want to do. And yes there are multiple possible languages for solving a single problem even if that problem is writing a high-performance game engine.

I gets all your texture budgets!


#33 Cornstalks   Crossbones+   -  Reputation: 6991

Posted 30 September 2012 - 04:40 PM

Quite foolish of me to start this post.

The foolish part was for you to call yourself a newb, and then try to tell people (many of which are more experienced and certainly not in the "newb" category) what to do, what's a good/bad idea, that they can't/shouldn't make an engine in anything but C++, etc.

I like programming in C++, but it's not the only language I like to program in, and I certainly wouldn't have the gall to claim it's The One True Way.
[ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

#34 way2lazy2care   Members   -  Reputation: 782

Posted 30 September 2012 - 07:12 PM

Not trying to point out or offend anyone here, but imo making claims like "This language is the best, and all you other guys suck for not using it"

Except pig latin. It is best, and all of you suck for not using it.

#35 Oberon_Command   Crossbones+   -  Reputation: 1963

Posted 30 September 2012 - 07:21 PM


Not trying to point out or offend anyone here, but imo making claims like "This language is the best, and all you other guys suck for not using it"

Except pig latin. It is best, and all of you suck for not using it.


Arrr, pig latin be fer' landlubbers!

#36 way2lazy2care   Members   -  Reputation: 782

Posted 30 September 2012 - 07:24 PM



Not trying to point out or offend anyone here, but imo making claims like "This language is the best, and all you other guys suck for not using it"

Except pig latin. It is best, and all of you suck for not using it.


Arrr, pig latin be fer' landlubbers!


And I bet everyone thought a programming language was going to be the reason shit really hit the fan in this thread.

#37 jbadams   Senior Staff   -  Reputation: 19340

Posted 30 September 2012 - 07:31 PM

...aaaand it looks like we're done here.

Picking on the original poster and taking the discussion off-topic are not productive guys, please try to avoid doing so in future.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS