Most Widely Used Programming Language (for games)

Started by
44 comments, last by Inisheer 10 years, 3 months ago

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.

Advertisement

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)

[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

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]

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

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.

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.

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.

This topic is closed to new replies.

Advertisement