• Advertisement
Sign in to follow this  

Most Widely Used Programming Language (for games)

This topic is 1478 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Why do you presume I was talking about you?

My statement stands: most people who like C++ don't know any better.

There are occasional people who like C++ and do have wide experience, which is fine. Some people also like having hot wax poured on their genitals. To each his own, but don't ask me to participate with a smile on my face ;-)

Share this post


Link to post
Share on other sites
Advertisement

The sad truth is C++ has many benefits when compared to many other languages and we are sort of "forced" to use it if we want to have fast programs that can run on any hardware and we know will still be around in 20+ years. I would love if C# ruled the world myself, but sadly it doesn't.

Edited by rpiller

Share this post


Link to post
Share on other sites

I don't believe any language is truly superior to the other. That's unless, you start talking about targeted platforms and design paradigms. This is because you're also now talking about frameworks. The biggest void I find in debates like this is the confusion between what works better versus what is more convenient, practical and cost efficient to code with.  With that said, I completely agree with ApochPiQ. People who like C++ typically are the ones lacking experience in other languages and development paradigms. 

 

Moving to something more personal, I would favor Java. With so much mobility, I feel that .NET and the JVM rain dominant as a mobile developmental option. However, Java is free, as is learning it and having access to all Java SE APIs. Also, Java is practically the preferred language for developing standard programs on the Android OS as their are not one, but two very powerful APIs for it (Oracle's Java ME and Google's Android SDK). If Java had a 3D framework that was by far more competitively scalable, economically efficient, simpler, and maintainable, there would be a lot more threads about gaming in Java in comparison to C#. Think about it: Java has it's roots well planted in network scalability and mobility, while C# has it's roots well planted in mobile presentation. They both can perform just as good as their counterpart, but Java lacks in presentation. That's why when you compare game engines like Unity versus jMonkey, it doesn't take much to figure out that Unity looks a hell of a lot nicer. However, start talking about business logic with Apache Hadoop, Oracle Weblogic, IBM Websphere, what ever SAP uses, or the Android SDK, and you pretty much talking about Java.

Share this post


Link to post
Share on other sites

The sad truth is C++ has many benefits when compared to many other languages and we are sort of "forced" to use it if we want to have fast programs that can run on any hardware and we know will still be around in 20+ years. I would love if C# ruled the world myself, but sadly it doesn't.

That fast process you are talking about my friend is primarily the pass by reference part of C++, which is a huge trade-off to security and portability. The part of C++ that I feel makes that language shine is it's ability to be a low level, mid level and high level programming language. However, valuing the low/mid level part of the language for the speed, in a high level development paradigm is a design weakness. Best be careful with that logic. ;)

 

 

 

Editorial note: Sorry, I just realized I posted twice on the same thread. lol Silly me.

Edited by Subtle_Wonders

Share this post


Link to post
Share on other sites
Most commonly used language for games ... i would say c++. Yes it's hard to use and has problems, even its creator admits that but it doesn't change the fact that even if it can make you want to shoot your foot, many companies still use it fort their games.
Comparing the language used in most games you've spent your money buying and you should see that c++ was used in someway.
You saying that c++ is used by those who don't know any better sounds like either you've never used the language or you couldn't learn it or you were looking for something easier.
Looking at the name of this thread sounds like the op knows the answer but is looking for doubt to feel his mind (kinda like what i did when ... ).

Share this post


Link to post
Share on other sites


The part of C++ that I feel makes that language shine is it's ability to be a low level, mid level and high level programming language

 

But we're talking about video games and I don't believe the reason you listed is why it's used in most (maybe just most AAA) video games. I was trying to list why most video games use it.

 

 

However, start talking about business logic with Apache Hadoop, Oracle Weblogic, IBM Websphere, what ever SAP uses, or the Android SDK, and you pretty much talking about Java.

 

I think business uses Java because

 

A) It came first as the write once run everywhere, which is what all these businesses were looking for, so when they got it they all jumped on it

B) It actually directly supports other OS's where MS doesn't directly write it's VM for other OS's (which I think they are missing the mark on personally)

 

The company I work for favors .NET but we have many of the apps that you speak of. I don't mind the Java language but I think the slow startup for Java just kills it for me. That's just my opinion through my experience though.

Share this post


Link to post
Share on other sites

Why do you presume I was talking about you?

My statement stands: most people who like C++ don't know any better.

There are occasional people who like C++ and do have wide experience, which is fine. Some people also like having hot wax poured on their genitals. To each his own, but don't ask me to participate with a smile on my face ;-)

 

Your statement does not stand, and is extremely judgemental.  C++ is a great language with many strengths that make it a great choice (and sometimes the best choice) for a wide variety of projects, and there are many great programmers who enjoy using it, some of which I work with every day.  Of course it has weaknesses too, but so does everything man-made.  You can say the reason I like C++ is because I don't know it, and I'd respond by saying the more I learn about C++, the more I do like it.  And no, I don't like having hot wax poured on my genitals tongue.png .

 

 

People who like C++ typically are the ones lacking experience in other languages and development paradigms.

 

Translation: "It is a fact that what I don't like is terrible, and everyone who likes what I don't like is stupid".

Edited by metsfan

Share this post


Link to post
Share on other sites


People who like C++ typically are the ones lacking experience in other languages and development paradigms.


Translation: "It is a fact that what I don't like is terrible, and everyone who likes what I don't like is stupid".

Perfect :)

Share this post


Link to post
Share on other sites

Translation: "It is a fact that what I don't like is terrible, and everyone who likes what I don't like is stupid".



I don't appreciate you putting words in my mouth.

I speak in generalities, not universal truths, and I would hope you'd be attentive enough to notice that. I'm not saying anything about "everyone" I'm saying that there is a definitive trend. Which means there will be exceptions.

I also never said C++ wasn't the best available choice for some applications. I just happen to think that that's a damned shame.

Share this post


Link to post
Share on other sites

But we're talking about video games and I don't believe the reason you listed is why it's used in most (maybe just most AAA) video games. I was trying to list why most video games use it.

 

I listed the reasons that seem irrelevant because games are being developed with far more complex mobile paradigms than they did in the past. Greater mobility requires complex networking and database accessing strategies. In addition, greater mobility also accounts for an array of hardware/OS platform requirements to design on. Now, judgement the factor of a greater need for security, and a insane amount of recreating the wheal for several different hardware/OS platforms, and you have a huge gap in liability and practicality. But that's just my honest opinion.

 

 

 


The company I work for favors .NET but we have many of the apps that you speak of. I don't mind the Java language but I think the slow startup for Java just kills it for me. That's just my opinion through my experience though.

 

Ditto. I won't hesitate to admit that Java has its weaknesses. What frustrates me is, weaknesses can be overcome, yet their is just not enough marketing power backing up Java in the areas where it could greatly enhance its 3D and game based frameworks. Yet, Java's strengths are without a doubt what the mobile entertainment industry needs and is looking for. It's plainly a double edged sword.

 

 


You saying that c++ is used by those who don't know any better sounds like either you've never used the language or you couldn't learn it or you were looking for something easier.

 

 

 

C++ is without a doubt a great language. My problem is not with this great language. It's the human factor and a lack of reliable frameworks used for secure networking and database accessing. Making a great AAA game that's fast, fun, graphically and audibly awesome is great. Making no money off of it because of database injections and piracy due to mixing low level and high level paradigms is not.

 

Translation: "It is a fact that what I don't like is terrible, and everyone who likes what I don't like is stupid".

 

Which is precisely what we are saying when individuals inside the C++ box can't think outside of it, and for reasons that would otherwise benefit them.

 

 

I don't appreciate you putting words in my mouth.

I speak in generalities, not universal truths, and I would hope you'd be attentive enough to notice that. I'm not saying anything about "everyone" I'm saying that there is a definitive trend. Which means there will be exceptions.

I also never said C++ wasn't the best available choice for some applications. I just happen to think that that's a damned shame.

 

I concur.

Edited by Subtle_Wonders

Share this post


Link to post
Share on other sites

 

I don't appreciate you putting words in my mouth.

I speak in generalities, not universal truths, and I would hope you'd be attentive enough to notice that. I'm not saying anything about "everyone" I'm saying that there is a definitive trend. Which means there will be exceptions.

I also never said C++ wasn't the best available choice for some applications. I just happen to think that that's a damned shame.

 

 

What is this "trend" you speak of?  Do you have data or a study to back up your claims that the majority of C++ developers are inexperienced, closed minded people who dont know any better?  If you want to talk about trends that's fine but you have to provide some proof that there IS a trend.   You have not spoken in anything but personal opinions.  Which is fine, you are entitled to your opinion.  But there is no trend.  Simply by stating that your words represent a general truth or a "trend" about C++ developers is proof that what I said is correct: you believe your own personal opinions and biases to be fact.  They aren't.  This will be my last post on the matter, so enjoy the last word.

Share this post


Link to post
Share on other sites

 

 

After 2 years of consecutive C++ the other languages (except ASM) are extremely easy to understand.
So go with C++.

 
... and it'll only be another 8 years or so, until you start to understand C++! tongue.png

 

I learned C++ in under 2 years, and it was my first programming language tongue.png

 

 

Heh, how much do you really know it, though?  I use C++ and have for about a decade, but on a general scale of knowledge of C++, there are still corners I rarely touch.

Share this post


Link to post
Share on other sites

After 2 years of consecutive C++ the other languages (except ASM) are extremely easy to understand.
So go with C++.

 
... and it'll only be another 8 years or so, until you start to understand C++! tongue.png

I learned C++ in under 2 years, and it was my first programming language tongue.png

 
Heh, how much do you really know it, though?  I use C++ and have for about a decade, but on a general scale of knowledge of C++, there are still corners I rarely touch.

I'd say I'm about intermediate-advanced, however, people from Digipen have to learn it within one year, and then do a whole game project for the next few years. Edited by Solid_Spy

Share this post


Link to post
Share on other sites

There are of course many who keep telling everybody at games development conferences that the future of games is going to be JavaScript and HTML5.

Yeah... And IBM didn't impose the requirement that lead to the myth of Bill Gates quoting that no one would come close to using more than 640kb of memory in the DOS age. [http://en.wikiquote.org/wiki/Talk:Bill_Gates]. Yet, here we are again confining one of the most fastest growing technologies in a web browser and calling it the future. No punts directed at you Buster2000 as I've hard this too.

 

Let me tell you what will happen with this future of HTML5 and JavaScript:

 

1) User credentials will be heavily vulnerable to 3rd party interceptions. 

2) Customer support will have no clear scope of support because the game is in a browser that doesn't belong to the developing company.

3) Confusion of responsibility for some issues (browser development or game development).

3) Changes to web browsers via updates (and their are many of them) may inject compatibility conflicts, resulting in higher maintenance costs.

4) Web Browsers will increase the need for minimal specifications, reducing sale volumes.

5) A potential of reaching a maximum specification scope defined by a web browser.

 

In HTML5/Javascript, all a web browser does is provide a very inefficient way to get around either .NET or the JVM to make use of WebGL and other associated frameworks. It's practically like making a game inside a pipe. Unlike .NET or the JVM, you can't exceed the support limits of a web browser. If you do, you'll crash the browser along with your game.

 

And since a web browser is also used for practically everything else, you'll be running into tool bar conflicts, plug in conflicts, spyware, viruses, antivirus conflicts, etc... There's just way too much liability for any serious financial investment.

 

 

 

 

SIDE NOTE: Thanks TheChubu for the clarification on Bill Gates.

Edited by Subtle_Wonders

Share this post


Link to post
Share on other sites

 

 

 

 

After 2 years of consecutive C++ the other languages (except ASM) are extremely easy to understand.
So go with C++.

 
... and it'll only be another 8 years or so, until you start to understand C++! tongue.png

 

I learned C++ in under 2 years, and it was my first programming language tongue.png

 

 
Heh, how much do you really know it, though?  I use C++ and have for about a decade, but on a general scale of knowledge of C++, there are still corners I rarely touch.

 

I'd say I'm about intermediate-advanced, however, people from Digipen have to learn it within one year, and then do a whole game project for the next few years.

 

 

Very few digipen graduates actually know C++ when they graduate though. heck, very few professional programmers really know C++, i made my first proper game using C++ and OpenGL 13-14 years ago (When i was 16-17,i had allready made a few simpler games using Basic, Pascal and x86 assembly) and back then i considered myself to be on the intermediate->advanced level, i was a programming god in my own mind biggrin.png

Today after having spent several more years using C++, going to university, working as a professional programmer and using over 15 other languages i'd consider myself to be on the intermediate level at best and i know that the 16-17 year old me really was a clueless beginner.

 

I still use C++ alot since i enjoy writing low level code and that doesn't leave all that many options but for real work it is never my first choice. If there was a better language that covered the full low->high level range that had the same level of compiler and library support as C++ i would ditch C++ completely without hesitation.

 

Oh, and i would claim that x86 assembly is easier to learn than C++ (it is far more painful to use and harder to read but easier to learn since it is very straight forward and reasonably consistent)

Edited by SimonForsman

Share this post


Link to post
Share on other sites

 

There are of course many who keep telling everybody at games development conferences that the future of games is going to be JavaScript and HTML5.

Yeah... And Bill Gates also conveyed that no one would come close to using more than 640kb of memory in the DOS age

http://www.computerworld.com/s/article/9101699/The_640K_quote_won_t_go_away_but_did_Gates_really_say_it_

 

In other words: [citation please]

Share this post


Link to post
Share on other sites

Yeah, I went to digiPen, and trust me, lots of folks there programmed in C++, but ranged in skill levels from barely able to code to incredibly competent.  But I'd still peg very few of them as knowing all of C++.  It's kind of like how everyone knows how to drive a car, but not everyone knows how to race an F1 car.

 

They've had lots and lots of very, very knowledgeable instructors though.

Edited by ferrous

Share this post


Link to post
Share on other sites

C++ is without a doubt one of the worst languages ever created.

 

Duplicate functionality:  Should I use puts or std::cout, printf or std::putf?  FILE or fstreams?  0, NULL, nullptr, or std::nullptr_t?  C-style cast, dynamic_cast, static_cast, reinterpret_cast, or const_cast?  If a language has duplicate standard library features, 4 different ways to express null, and 5 different ways of casting, then it was poorly designed.

 

Pitiful OOP: No base Object, multiple inheritance, getters/setters are not automatically generated, class declarations force developers (unless PIMPL is used) to expose private methods and variables in the public header, no way of "opening" or extending an existing class (except via inheritance).  Its minor, but having to prefix every member function implementation with ClassName:: is lame - instead one should be able to wrap all the member functions with a ClassName { } block like with a namespace.

 

Over-complex Grammar: It is fact that the language grammar is not context free - it requires arbitrary lookahead.  If you, as a language designer, have designed a grammar so complicated that it can't be parsed using standard parsers, your have failed.

 

Community: C++ means different things to different people: Is it procedural, OO, functional, or something else?  Low level or high level?  Is the code still C++ if you use malloc instead of new?  The answer to all those questions is Yes.  I can't tell you how often I've seen, "That's not C++ that's C with Class".  C++ means too many things to too many developers.  If you, as a language designer, have designed a language so complex that it causes as much community division as C++ has, then you have failed.

 

In addition, the C++ community seems to have a bad case of Not Invented Here syndrome.  I've seen more reinventing within the C++ community than I have any other.  If you, as a language designer, have designed a language were many developers choose to reinvent their own (for example) string class (whether it be QString, Ogre::String, irr::core::string, etc...) rather than using the standard string, you have failed at some level.

 

Many problems with C++ are simply a result of features not being well thought-out the first time.  For example, nullptr (a new feature in C++11), was added to fix an edge case with function overloading.  If said feature had been well thought-out the first time, it wouldn't need a work-around later.  There is no question that C++11 will introduce problems yet to be realized but will be undoubtedly "fixed" in the next C++ revision.

 

The C++ community isn't critical enough of the language.  For example, one of the biggest complaints about D1 was how it had 2 standard libraries, Tango and Phobos.  But, by contrast, how often do you hear devs complain about all the duplicate functionality C++ has?  How often do you hear them say how lacking the OO features are?  Instead, C++ purists grumble to themselves and develop idioms and "design patterns" to work around said deficiency - hence you get things like PIMPL.  A language can't get better unless the community is willing to be critical of it.

 

If you want an object oriented C done right, learn Objective-C.

 

To the OP: Use the language you feel comfortable with.  Any touring complete language can be used for game development.  If you want to get into the nitty gritty, I'd recommend C with SDL.  If you want something higher level, I'd recommend Lua with Love2d.

 

I know some people are suggesting C++, but I'd shy away from it unless your really dying to work in the game industry.  Also, don't confuse C for C++, people often lump them together (even writing them as C/C++ in various message boards), but they are very different languages.  Unlike C++, C is small, simple, and focused.  In terms of community, it doesn't suffer anywhere near the level C++ does, e.g. NIH syndrome, bickering over proper language subset, and over-designed solutions are not a problem with the C community in my experience.

Edited by scarypajamas

Share this post


Link to post
Share on other sites

 

 

I know some people are suggesting C++, but I'd shy away from it unless your really dying to work in the game industry.  Also, don't confuse C for C++, people often lump them together (even writing them as C/C++ in various message boards), but they are very different languages.  Unlike C++, C is small, simple, and focused.  In terms of community, it doesn't suffer anywhere near the level C++ does, e.g. NIH syndrome, bickering over proper language subset, and over-designed solutions are not a problem with the C community in my experience.

 

Well said. In fact, if I need to use native code rather than my traditional C# -- I move all the way to C and skip the C++ step.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement