Comments on: (Don’t Fear) The (C)Reaper firstly, as Promit pointed out, the TIOBE index does indeed appear to be rubbish, and is badly skewed towards certain types of online opensource development - it also certiainly can't access any commercial games code and most (all?) of the console forums. If you're looking for what language is used most for games, maybe you should learn action script and do flash games. There's thousands of those. secondly, knowing C/C++ has undeniable advantages for game development since they are used on ALL consoles and are pretty much mandatory. So as a games programmer, you've cut your employment options cut down a lot by not learning C/C++. thirdly, there is a lot of overlap between C/C++/Java and even C#. I wrote a Nokia game once in Java and there really wasn't much learning curve on top of my existing C knowledge. C++ is the language that will keep you going for your entire life and you'll never learn all of it, but fortunately you only need to learn the basics of templates, inheritance, references and const to get you most of the way. The article reads a bit like someone trying to validate that not knowing C/C++ is a good thing... lots of people will get through life without C/C++ - but you are limiting a lot of game programming avenues without it... iOS is the single biggest one I can think of - there is no entry barrier to that other than knowing C/C++ and a smattering of Objective C. If/When minecraft gets ported to iOS it will be by a C/C++ programmer. firstly, as Promit pointed out, the TIOBE index does indeed appear to be rubbish, and is badly skewed towards certain types of online opensource development – it also certiainly can’t access any commercial games code and most (all?) of the console forums. If you’re looking for what language is used most for games, maybe you should learn action script and do flash games. There’s thousands of those.

secondly, knowing C/C++ has undeniable advantages for game development since they are used on ALL consoles and are pretty much mandatory. So as a games programmer, you’ve cut your employment options cut down a lot by not learning C/C++.

thirdly, there is a lot of overlap between C/C++/Java and even C#. I wrote a Nokia game once in Java and there really wasn’t much learning curve on top of my existing C knowledge. C++ is the language that will keep you going for your entire life and you’ll never learn all of it, but fortunately you only need to learn the basics of templates, inheritance, references and const to get you most of the way.

The article reads a bit like someone trying to validate that not knowing C/C++ is a good thing… lots of people will get through life without C/C++ – but you are limiting a lot of game programming avenues without it… iOS is the single biggest one I can think of – there is no entry barrier to that other than knowing C/C++ and a smattering of Objective C. If/When minecraft gets ported to iOS it will be by a C/C++ programmer.

]]>
By: Savas Ziplies/2011/04/12/dont-fear-the-creaper/#comment-2720 Savas Ziplies Thu, 14 Apr 2011 07:18:29 +0000 I'm new (1.5 years) to game dev and console dev, but the “Games are developed in C” probably originates from the console world where resources are so precious. It will likely remain true in all times, simply because low-level languages are needed to push the consoles as far as possible. The boring-sounding "memory planning" problem is actually a global problem where the engine and the levels need to know exactly what they want and when. - But that's all Engine code... Visual languages and scripting languages are heavily advocated by more experienced colleagues. It's faster to prototype and easier to protect the engine from complex game logic mistakes. So to say that the games are developed in C because their engines are, is wrong :) I would not like to see a game with assets only mare by hardcore C/C++ programmers. (physics programmer at IO Interactive) I’m new (1.5 years) to game dev and console dev, but the “Games are developed in C” probably originates from the console world where resources are so precious. It will likely remain true in all times, simply because low-level languages are needed to push the consoles as far as possible. The boring-sounding “memory planning” problem is actually a global problem where the engine and the levels need to know exactly what they want and when.

- But that’s all Engine code…
Visual languages and scripting languages are heavily advocated by more experienced colleagues. It’s faster to prototype and easier to protect the engine from complex game logic mistakes.
So to say that the games are developed in C because their engines are, is wrong :) I would not like to see a game with assets only mare by hardcore C/C++ programmers.

(physics programmer at IO Interactive)

]]>
By: Savas Ziplies/2011/04/12/dont-fear-the-creaper/#comment-2692 Savas Ziplies Wed, 13 Apr 2011 21:29:19 +0000 What so special about C/C++? I don't get it. These are just languages - with specifications and tutorials like any other language. How is learning C different from learning Php or Ruby? (I don't know these languages btw). Writing games for a console requires you to plan how you're going to use the available memory in the best way possible. Garbage collected languages pay an extra memory overhead because they don't have explicit memory usage plans. But this doesn't stop you from learning C... What so special about C/C++?

I don’t get it. These are just languages – with specifications and tutorials like any other language. How is learning C different from learning Php or Ruby? (I don’t know these languages btw).
Writing games for a console requires you to plan how you’re going to use the available memory in the best way possible. Garbage collected languages pay an extra memory overhead because they don’t have explicit memory usage plans. But this doesn’t stop you from learning C…

]]>
By: Savas Ziplies/2011/04/12/dont-fear-the-creaper/#comment-2686 Savas Ziplies Wed, 13 Apr 2011 19:34:33 +0000 I think your point would be better served if you don't rely on business software examples so often. Game development and business software development or web development are totally different beasts. It's not only a question of graphics, games are simulations : the most power you have, the more interesting and true to the designer's intent the simulation can be. (And for the anecdote, most people I know suffer performance problems with Minecraft... sometimes coming from the JVM implementation itself!) I think your point would be better served if you don’t rely on business software examples so often. Game development and business software development or web development are totally different beasts.

It’s not only a question of graphics, games are simulations : the most power you have, the more interesting and true to the designer’s intent the simulation can be.

(And for the anecdote, most people I know suffer performance problems with Minecraft… sometimes coming from the JVM implementation itself!)

]]>
By: Savas Ziplies/2011/04/12/dont-fear-the-creaper/#comment-2678 Savas Ziplies Wed, 13 Apr 2011 14:10:24 +0000 I am reading this blog since a few days and it is awesome. Maybe because of being a poor english man i don't understand what this post is trying to tell about. I can say that succes is not whole dependent on programming language when it is about game programming. I am reading this blog since a few days and it is awesome. Maybe because of being a poor english man i don’t understand what this post is trying to tell about. I can say that succes is not whole dependent on programming language when it is about game programming.

]]>
By: jokoon/2011/04/12/dont-fear-the-creaper/#comment-2674 jokoon Wed, 13 Apr 2011 12:26:30 +0000 Hi there As you probably can tell, the post was intentionally polemic. From my time in IT (not always game development) I got some different views on development processes, requirements and solutions and how to deal with it. That's why I wanted to do such a post. As hinted I do not defy C/C++ and to me its always about solving a problem with the help of any syntax and semantics. I am pretty sure, even I as a dyslexic C programmer can learn and use C/C++ practically and good if required. I had to use it several times for some embedded programs so there is always a job and its according tool. In most cases my C time was kept in such small projects and did not prevail. And if it comes to this, I also evaluated and programmed on native Java compatible hardware (even Blu-ray relies on Java) and embedded VMs. So even here I can find good and powerful possibilities. What I just wanted to point out is that I have to and do use Java, C#, Scala and JavaScript nearly every day. Here is where I have my expertise build up over years. Here is where I know how to tweak code and the VM (yes, even managed code has to be highly tweaked!). Here is where I exercised design patterns, tier-architectures and parallel development. Even if I start learning C/C++ more intensively I do not have the practical requirement during work and therefore can hardly build the practical experience that is as well as important as the main language semantics. So am I required to "construct" that requirement for myself as I am otherwise only a half-baked programmer? That's the question that bugs me very often as some people talk or write to me with such a tongue. Of course, you are right if you state that I exclude myself from platforms such as the PS3 or Wii. But on the other hand: I do not have access to devKits so what I would learn would be again the language (and what other people write about it) not the practical side. But what I do know and have is general expertise in architecture, in parallel development, in threaded computation and data-driven design...which I may port if required. So what is better if I have to decide? The syntax and semantics or the architectural and engineering expertise? (I know, again very polemic, sorry ^^') But in general, thanks very much for the insights. I just wanted to give mine from a different point of view and career and assure you that I take everything seriously ^^. Cheers PS: Tiobe as well as TLPI cannot be taken seriously. I do not think you can "rate" programming languages in the ways done. If you have a look at the graphs of the last decade you instantly see when each language had its "coming-out" and publicity and what happened afterwards. And in most cases 90% of projects dealt in big but unrecognised projects are not counted in. It was again just to support the polemic purposes. ^^ (*geez*, I have to learn to cut down my writings ^^') Hi there

As you probably can tell, the post was intentionally polemic. From my time in IT (not always game development) I got some different views on development processes, requirements and solutions and how to deal with it. That’s why I wanted to do such a post.

As hinted I do not defy C/C++ and to me its always about solving a problem with the help of any syntax and semantics. I am pretty sure, even I as a dyslexic C programmer can learn and use C/C++ practically and good if required. I had to use it several times for some embedded programs so there is always a job and its according tool. In most cases my C time was kept in such small projects and did not prevail. And if it comes to this, I also evaluated and programmed on native Java compatible hardware (even Blu-ray relies on Java) and embedded VMs. So even here I can find good and powerful possibilities.

What I just wanted to point out is that I have to and do use Java, C#, Scala and JavaScript nearly every day. Here is where I have my expertise build up over years. Here is where I know how to tweak code and the VM (yes, even managed code has to be highly tweaked!). Here is where I exercised design patterns, tier-architectures and parallel development.
Even if I start learning C/C++ more intensively I do not have the practical requirement during work and therefore can hardly build the practical experience that is as well as important as the main language semantics. So am I required to “construct” that requirement for myself as I am otherwise only a half-baked programmer? That’s the question that bugs me very often as some people talk or write to me with such a tongue.
Of course, you are right if you state that I exclude myself from platforms such as the PS3 or Wii. But on the other hand: I do not have access to devKits so what I would learn would be again the language (and what other people write about it) not the practical side. But what I do know and have is general expertise in architecture, in parallel development, in threaded computation and data-driven design…which I may port if required. So what is better if I have to decide? The syntax and semantics or the architectural and engineering expertise? (I know, again very polemic, sorry ^^’)

But in general, thanks very much for the insights. I just wanted to give mine from a different point of view and career and assure you that I take everything seriously ^^.

Cheers

PS: Tiobe as well as TLPI cannot be taken seriously. I do not think you can “rate” programming languages in the ways done. If you have a look at the graphs of the last decade you instantly see when each language had its “coming-out” and publicity and what happened afterwards. And in most cases 90% of projects dealt in big but unrecognised projects are not counted in. It was again just to support the polemic purposes. ^^

(*geez*, I have to learn to cut down my writings ^^’)

]]>
By: Promit Roy/2011/04/12/dont-fear-the-creaper/#comment-2665 Promit Roy Wed, 13 Apr 2011 04:05:59 +0000

]]>
By: Garett Bass/2011/04/12/dont-fear-the-creaper/#comment-2661 Garett Bass Wed, 13 Apr 2011 01:43:55 +0000 I think it's always a good idea to learn more languages if you get the opportunity and you think it might be useful. I think C/C++ is usually quoted as "the language to write games in" because for almost every platform where games are distributed, you can use C/C++. (The main exception I can think of is Xbox Indie games and J2ME, where you have to use C# and Java.) Knowing Java, JS and C# and omitting C/C++, you lose some platforms: PS3, Wii, DS, (3DS?), PSP, (NGP?). I'm not entirely sure about IOS, maybe there is a way to use Java and Javascript, but I think you would really notice the overhead of a JVM or Interpreter on a slower ARM machine. So personally I would say, if you know Java/JS/C#, and you have time, go and learn C and C++ too. Can't hurt, and you open yourself up to developing for more platforms. I think it’s always a good idea to learn more languages if you get the opportunity and you think it might be useful. I think C/C++ is usually quoted as “the language to write games in” because for almost every platform where games are distributed, you can use C/C++. (The main exception I can think of is Xbox Indie games and J2ME, where you have to use C# and Java.)

Knowing Java, JS and C# and omitting C/C++, you lose some platforms: PS3, Wii, DS, (3DS?), PSP, (NGP?). I’m not entirely sure about IOS, maybe there is a way to use Java and Javascript, but I think you would really notice the overhead of a JVM or Interpreter on a slower ARM machine.

So personally I would say, if you know Java/JS/C#, and you have time, go and learn C and C++ too. Can’t hurt, and you open yourself up to developing for more platforms.

]]>