Is C++ here to stay?

Pages: 12
To add to this, there are also programmers out there who are only in it for the money. They learn any language in the pursuit of making more money, I beleive everybody should but thats emotionally selfish to oneself. Wouldn't you instead hire someone who loves C# because they just simply love to program in that language....someone who is passionate about what they do is much better than some junkie looking at you with his hands open waiting for a paycheck at the end of the project.


Above depend on the person mindset. Some managerial ppl think more on how to deliver objectives at the most reasonable cost in order to raise revenue for the employer isn't it ? They look at that purely economic and business angle.

Of cuz that does not mean no ppl subscribe to the other aspect like what you say, passion or just in it for monies etc kind of thinking. However please be reminded that as long as you remain as an employee status, your ultimate objective is to help the employer earn monies who in return then pay you salary for your effort done.

Sadly, most employees have to forgo their lofty ambition just to survive. Passion for that job or just in it for monies is no longer that clear but just a blurry line. However I can safely say having the passion is a bonus cuz you are more confident in your deliverables compared to someone who just want to get paid for work done (which can turn out to be shoddy work for e.g)
C++ is a good language for me, it is the most flexible programming language I have ever seen
I hope that C++0x could make C++ easier to learn, since C++0x support garbage collection,
those who uncapable to handle pointer or memory management could be freed from the pitfalls
of them.
Although for those who know how to handle it would think that "we don't need GC", but if GC could
make C++ become more popular, it would be a good news for me. But....I'd like to know when they'll let C++0x out.
Last edited on

since C++0x support garbage collection


No it doesn't. It was planned, but dropped from C++0x and postponed to the future releases.
Just as concepts, the thing that could make C++ templates match C#/Java generics in terms of expressivity and clean compiler messages, were also postponed. We will have to wait for it probably next 5 years.


I want to use those resources to give my customer more cool stuff to look at. If you use c# to make a cool game, I'll use c++ to make a game with better graphics and larger environments, because your .net runtime is eating your program's speed.


I've got a different theory on it. Most games are still produced in C++ not because of speed, but because of great, mature engines that are ready to be used (like UE). Till there is nothing comparable for Java/C#, C++ is safe here. But performance is not a real issue. Hardware becomes faster with every year, and we are approaching the point, where computational power is no longer a limiting factor in making a beautiful game - but rather - how much quality content you can deliver in the game. And this is limited by your budget, not technology. Games are now more like movie industry, not programming.

BTW: 2D games run perfectly in resource hungry Flash now. Flash is about 100x slower than C++ or Java and uses more memory, too. So, performance is not a limiting factor to make a good 2D game - your imagination is. But go back 30 years and you can see, that game producers had to use several tricks in assembly just to make special 2D effects in their games. Now that has been obsoleted by fast hardware. I think the same is going to happen to 3D games. Just more time is needed.

Last edited on
5 years are too long, without GC would scare away a lot of students(just my imagine)
concept could be postponed since most of the beginners(like me) would not
mess too much with template or generic(although it is pretty cool and useful)
But GC could be a big impact for the popularity of C++
Do you think C++0x could lower the threshold for learning C++?
I only know a little features of C++0x.
bind, function, shared_ptr, lambda, regex could be a big help.

concepts, the thing that could make C++ templates match C#/Java generics in terms of expressivity and clean compiler messages

I only know a little bit about java and c#(even less than C++), but I though the generic programming
of C++ would be the most mature one between those language, because java didn't support
pointer and C# discourage the use of pointer. Did I make a mistake about it?

2D games run perfectly in resource hungry Flash now

so those 2D games like tales of destiny2 or odin sphere could run perfectly in Flash(if resolution = 1920 * 1080) too?

Thanks a lot
Last edited on

I only know a little bit about java and c#(even less than C++), but I though the generic programming
of C++ would be the most mature one between those language, because java didn't support
pointer and C# discourage the use of pointer. Did I make a mistake about it?


What do pointers have in common with gewneric programming?

I meant "concepts". The thing that could fix this problem:

Java:
 
void attack(List<? extends Player> enemies) 


C++:
1
2
3
// T must be a subclass of Player <-- the only you can do is write a comment, not-expressable in the language, not seen/checked by the compiler
<template typename T>
void attack(const vector<T>& enemies)

Last edited on
rapidcoder wrote:
Most games are still produced in C++ not because of speed, but because of great, mature engines that are ready to be used (like UE).


While I do agree that the number of game engines written in C or C++ has contributed to C/C++ dominance, it is not solely responsible. Performance is still the main focus of any game. Let's look at a highly successful game such as World of Warcraft. How well do you think that game would perform if it was written purely in C# or Java?

rapidcoder wrote:
Hardware becomes faster with every year, and we are approaching the point, where computational power is no longer a limiting factor in making a beautiful game - but rather - how much quality content you can deliver in the game.


Not every PC game is written for high end systems, to do so would alienate the vast majority of players. I agree hardware continues to improve, but users do not quickly upgrade their systems. Most games are written with the LCD in mind or at least close to it to maximize marketability. Time and resources are also a factor. Even if the sky was the limit for a game studio, it takes a very long time to develop high quality graphics which seems to be where most companies invest there time... forgetting about quality content. If performance is always in mind, you can always do more with what you have. That's great if the system is faster, but if you sacrifice the performance of C++ for say C#, you may essentially be negating your gains. For the moment, with C++ you will typically always be able to achieve a little more.

How well do you think that game would perform if it was written purely in C# or Java


Don't know until someone actually tries it. Probably requirements would be higher, but I doubt it would require more than 2x as much power as the original C++ version. There was a company somewhere that ported Quake 2 to Java and it ran with similar performance as the original C version. So it is possible, but IMHO pointless. If you can't get immediate reward e.g. in time to market doing your game in Java instead of C++ (because of crappy engines, lack of physics engines etc.), then it is pointless. Also, java is not a fun language to code in.


It takes a very long time to develop high quality graphics which seems to be where most companies invest there time


And this is why so many games have cool effects and poor gameplay. Sometimes I feel that those 20-year-old games were much better.

I am all for expanding the tools set for game & simulation programming and hope that at some point we'll see a few new tools.

rapidcoder wrote:
And this is why so many games have cool effects and poor gameplay. Sometimes I feel that those 20-year-old games were much better.


I completely agree with you. It's nice to be blown away by graphics, but if there's nothing else to the game, what the hells the point?

You posted a link to an MIT book http://www.cplusplus.com/forum/beginner/33410/#msg179693. To quote Alan J. Perlis in the foreword

The computers are never large enough or fast enough. Each breakthrough in hardware technology leads to more massive programming enterprises, new organizational principles, and an enrichment of abstract models. Every reader should ask himself periodically ``Toward what end, toward what end?'' -- but do not ask it too often lest you pass up the fun of programming for the constipation of bittersweet philosophy.

Alan J. Perlis
What do pointers have in common with gewneric programming?

Because the algorithm of stl use a lot of iterator, and those iterator are very similar to pointer
If i make any mistake, please tell me, then I could learn something I don't know

Thanks a lot
Iterators are not pointers. They can be implemented with pointers, but they don't need to be. Anyway iterators and generic programming are still two different things. You can have a language without generic types and still use iterators in it.

Last edited on
My two cents on the gaming argument is that for at most 10 years PC and console shared a market, but now they are beginning to diverge again. This is partley due to Soothsayers hearalding the death of the PC gaming market but also, IMO more to blame, due to console exclusive hits like Halo, Resistance etc.

With a console game it doesn't matter what language you are writting your code in as long as when it is compiled the software you are using knows what set of hardware it needs to translate your commands for. You know that the user isn't running any Antivirus software, they probably aren't executing massive database queries in the background and if you're worth anything you'll take into account that the user may want to play music on the console while they enjoy your game but that's about it. You know what hardware to account for and how much of that systems resources are left by the time the user goes to launch you game. In effect because console development is so tightley controlled it makes it SO MUCH EASIER to be lazy.

With regard to PC gaming though C++ is locked in for a while to come. This is because you have no way to account for every possible permientation of hardware, OS (with or without updates) and Software (Antivirus, quick launch services and yes even Bonzi Buddy and his friends) on the market so your game HAS to be fast if you want a wide audience to enjoy it. Even doing something like requiring a specific version of "free" software such as the .NET architechture or a specific version of Java, which far too many applications do, will lock out a large portion of your audience. But the closest that C++ comes to having that issue is "DLL Hell" which is be blamed on the libraries used not the language as a whole.

EDIT: The word 'free' is quoted and italisized above because in order to run the .NET framework a system must be running a recent Microsoft Operating system. This is therefore a cost to be associated with .NET as even using emulators or kernal wrappers are a legal grey area, if they even work, and so cannot be said to be a subsitute.
Last edited on
I must say that I do not completely agree with you Computergeek, you are right about the divergence of the two markets, but there really is a future in PC gaming and C++ is pretty important in it.

Publishers have tried to make hacky solutions to the illegal downloading, activation keys are one of them. Response? Keygenerators. For every so called solution, there is a workaround.. Except for one: Steam. I have used for almost 2 years now, and I really love it. It works, that's why.

The creators of Steam (Valve) also create pure C++ games. The development of them takes quite a while, as many of us probably know. But the results are simply mindblowing, as we ALL know. Even if you don't plan on creating C++ games, you can consider C++/Python or similar.
The 'Soothsayers' comment was meant to illustrate that I disagree with the death of the PC gaming market as well, afterall it is still my favorite platform. But no one can deny the impact that the rumor has had on its development, especially from large developers.

I am actually working (at a snails pace) to make a game in C++ right now. It isn't anymore work then I expected it to be when I first set off to learn the language, after all if it was easy then every script kiddie out there would have a dozen games made already.
Last edited on
closed account (3pj6b7Xj)
Talking about the PC gaming market, i've noticed they don't make as many games like they use to. I remember stopping by a gaming store and seeing hundreds of PC titles on the shelves, now a days, you walk into a store and the largest gaming section is either PS3 or Wii ... the PC section is a small end cap with only 6 games and if your lucky, they might be the latest or they may be something from the year 1996.

I believe the PC market is dieing not because the PC is a bad platform but because developers push the boundaries too much, they tax the computer in terms of performance way off the boundaries. Flight Simulator X for example brings almost any top end system to a crawl, to enjoy that game you have to start turning sliders down but what is the use of making a game you will only use half of its capability? FSX taxes systems so much that according to what i've read, it was almost a commercial failure but people still prefer previous titltes over the newer one....all gamers like smooth fluid performance..that is why consoles are attractive, the architecture is universal for 1 console, it is not different than others, thus, developers can squeeze out every once of performance and get it all across every gaming console system of the same type.....not on a PC, if you don't have a $1000 video graphics card to begin with, most of your games play-doh.

Then there are companies that make games that don't take advantage of todays technology. Everyone wants eye candy, thats all they can think about, developers start throwing in tremendous amounts of detail and throw performance out the window....today, I still do not understand why Flight Simulator X does not take advantage of SLI, CrossFireX or Multi-Proccessor system, the technology is there.......WHY DON'T THEY USE IT!!? Eventually I found out that FSX is built on top of their old architecture and thus taking advantage of such technology would require a start from scratch but i'm pretty sure it would be well worth it......isnt' that what valve did with Half-Life 2? We all waited 7 years and finally there it was HL2 and damn was it a success!

I'm done ranting... :)
@ mrfaosfx: You are correct, retail support for the PC gaming market has gone out the window it seems that everyone from Target to Walmart and even EB Games are abandoning ship. But I credit that more to Steam being such a kick-a-- delivery mechanism that no one wants to deal with retail anymore. There are no lines at steam, they don't run out of stock, they are open 24/7 weekends and holidays, they have a massive selection and as far as I know they don't ever stop carrying a game just because it's too old.

I'm not a shill for Steam, I have my complaints about them but over all they beat out retail shopping in every way I can think of.
Last month I walked into my local gamestop to buy Starcraft II as a gift for someone and it turned out they stopped carrying PC games. They told me if I want a pc game I must put in a request and the game will be transferred to the store.... I of course explained to the clerk that was the stupidest thing I've ever heard and drove down the street to walmart.
I would point the finger at console ports. Nobody buys expensive hardware just to play watered down console games. PC gamers are more demanding than console gamers for the obvious reason that they spent a lot more on their equipment. But game studios keep delivering poorly made ports that carry all the limitations from the console to the PC. Also, games these days are becoming increasingly short and unimaginative. As far as fun is concerned, many games from 10 or 20 years ago are still widely superior to nearly all of today's games.
Aswering the very first post, it´s almost identical to ask "Is Cobol here to stay?".

As long as someone needs it (and every application where performance is needed, you can use C/C++. I´m not talking about performance in developping the code, but when the machine runs it), yes it´s here to stay.

@mrfaosfx, I´m not I understood your comment about being able to compile C# in Mac and Linux, but if you use Mono plataform, yes you can compile C# code to these OSs.
ainsoph wrote:
Aswering the very first post, it´s almost identical to ask "Is Cobol here to stay?".


It's not identical, COBOL is dead and currently in the process of being replaced incrementally. Yes there are a lot of systems still written in COBOL for numerous reasons that I've rambled about in other threads, but most companies are in the middle of projects to replace it or plan to move off in the near future. C++ is in no such danger in the game industry.
As far as fun is concerned, many games from 10 or 20 years ago are still widely superior to nearly all of today's games.


Actually for me personally, PC games 10 to 20 years ago focus more on the "game element" or what you all called the "game play". It is the rules of the game and the different combination for every play that keep me interested. The focus on graphics and sound was not that high leading to not so nice to look at UI but low memory footprint and processor requirement to run it.

Fast forward to current day, most PC games have high memory footprint and fast processor requirement and even good fast graphics card thrown in. The focus has now changed in reverse. The game is full of eye catching graphics and sound but what about the "game element" ? Of cuz there is, a strategy to hide, co-ordinate in order to kill your enemies ? Fast reflexes to prevent getting hit ? Such kind of effect demand a lot from your hardware.

Since the "style" of games 10-20 years ago and current day are very different, my question remains. Are there still supporters of those games 10-20 years ago? Till today, Sokoban, PacMan, Snakes and even Sudoko still interest me. Crossword puzzle also :P

So let's not bash current game developers, they are developing a different game genre to cater to new gamers appetite even if they would alienate players who prefer "slower" or at least mind challenging games from 10-20 years ago.

PS
Recently I was trying to "beautify" my own game (I spent quite some time to get the game logic/play correct) and then I discover I have no good 'art' taste. I have to rope in my wife opinion on the application icon look ok? The font and wording catchy? Need to have background pic? Need to add sound?

That is when I feel I need to make games 10-20 years ago relevant today, I need to make an effort to add some graphics and sound. But still my mind is thinking of a new game play already. What should I do? Hmmm.....
Topic archived. No new replies allowed.
Pages: 12