Hello PGD Community. As a professional game developer I felt compelled to offer some insights into this topic from a different point of view.

The natural reaction is to defend whichever language presents the least resistance, which isn't a bad reaction but it's not necessarily right because this opinion is biased by whichever language you know the best. From the average PGD visitor that language will be Pascal, but Pascal as well as other languages can offer interesting and unique low resistance solutions to certain problems.

There are pros and cons to using any language. Off the top of my head I can think of at least a dozen problems with C++ as a language, maybe more if I put my mind to it, so why do we use it? In priority order, they are:
  1. Every platform supports it (PC, Consoles).
  2. Everyone already knows it.
  3. One way or another it does everything you need it to.


I'm not saying any one of those is a hands down winning reason, though it does help a lot if your team all know (and use) the same language. What we're talking here is the path of least resistance. I think there are several reasons why C (and then by evolution, C++) became prolific, but none so important as the venerable Unix - the first OS to be written in C, which went on to become an open standard. I'm not saying C/C++ has popularity for the right reasons, but it is arguably very popular. Maybe less so now that other languages exist that solve some of C/C++'s more difficult problems, but those that still use it have a good reason, which ultimately comes down to taking the path of least resistance so they can get their job done to the required standard.

Speaking of performance in C++ is a moot topic. Most often the biggest performance win is gained by carefully choosing your data structures and algorithms, which applies to any language. In more recent versions of the Visual C++ compiler (2008, 2010), the biggest performance gains from plain old compiler output are in runtime analysis aka profile guided optimization, but often the compiler you use is not a choice you make, you work with the tools you have and the job of the engineer is to make the most of those tools and the target platform architecture. So whether it's GCC or Visual C++ doesn't really matter, you will always find a way to get the best performance out of either or the other. That's our job.

If you're talking about something other than console games, then other languages apply just as easily. For example C# is the language for Unity, XNA, MonoTouch, and of course C# is great for developing desktop and web applications. In fact the games industry uses C# for tool development, but as is often the case, it varies from one developer to another. Epic for example choose to use C++ and wxWidgets for UnrealEd, but then for them that fulfilled their goals and offered the path of least resistance. However, you wouldn't catch Zynga using C++ to write their social games, because that would conflict with their goals.

HTML5 is becoming increasingly important in the social games battlegrounds. Though Flash (and even Java) offers a more predictable platform, though more of a desktop platform, Flash is currently the default choice. As social games begin to transition to mobile as well, HTML5 is growing in significance, but in practical use it's difficult because of radically unpredictable performance and sporadic vendor support - though that is changing all the time, and in my opinion will become the default choice for social developers in the near to mid future.

If your goal is simply pleasure, there is no good reason not to use whatever language suits you best. Good games can be written in any language, including Pascal. What really matters most is that you're doing something you enjoy.