02-10-2013, 09:00 AM
I've done more research into how to choose a programming language than I really should have and I've talked to quite a few people who have worked in the industry (although I never have myself) whats generally said is the key to developing a game is being comfortable with your tools and developing fast, this is probably because of the brutal nature of AAA game development process, (tens to hundreds of people working in a confined space with unpaid overtime to create a finished product still with half the bells and whistles mangled or missing by release.)
I've heard both ends of the spectrum, this is both why C++ is used and why it should not be used. Though I don't know the exact details typically C++ is used because thats what the engines are written in, code already written in C++ they've been expanded in C++, morphed around C++, and it would be far too much work to drop it all for another language, its not because C++ is better, its just plain easier.
The reason C++ should not be used is .NET languages / Java are easier to used, and a large amount of developers agree a development environment built around such languages could easily match the speed or beat the speed of C++ (given the intended platforms are optimised for such languages, which sadly, they're not.)
The migration is slowly being made, XNA was a chance for this but XNA wasn't exactly a port but more of a wrapper of DirectX and once again, platforms aren't being optimized for such languages, mobile devices are helping this most, but in the big scheme of things that doesn't mean much, people won't look at a mobile game and say "that looks pretty cool, shouldn't we be playing with that stuff for the machines with 10 times the power?" it just sounds silly on the face of it to compare them, but its what SHOULD be done.
To put it in a nutshell, C++ is used because the newer development environments are C++, the newer development environments are C++ because the older are C++.
its a nasty cycle, but as far as the already built stuff goes there's no reason to tear down and start again.
TL;DR?
despite popular belief you don't need to know lower level languages like C++ / C to get into game development or even into the industry of AAA Games. C++ isn't necessarily bad but from word of people much smarter than I, its not going to be the future. If you want to get into the game industry its not a bad skill to know C++, but I see a lot of people with the "Common Knowledge" that its the god language which you need to know to do anything, when it very much is not.
If you want to make a game the key is fast and smooth development, learning a new language isn't often smooth, so if you know a language which your happy with and does not give you significant performance bottlenecks, stick to it, its all you need.
I've heard both ends of the spectrum, this is both why C++ is used and why it should not be used. Though I don't know the exact details typically C++ is used because thats what the engines are written in, code already written in C++ they've been expanded in C++, morphed around C++, and it would be far too much work to drop it all for another language, its not because C++ is better, its just plain easier.
The reason C++ should not be used is .NET languages / Java are easier to used, and a large amount of developers agree a development environment built around such languages could easily match the speed or beat the speed of C++ (given the intended platforms are optimised for such languages, which sadly, they're not.)
The migration is slowly being made, XNA was a chance for this but XNA wasn't exactly a port but more of a wrapper of DirectX and once again, platforms aren't being optimized for such languages, mobile devices are helping this most, but in the big scheme of things that doesn't mean much, people won't look at a mobile game and say "that looks pretty cool, shouldn't we be playing with that stuff for the machines with 10 times the power?" it just sounds silly on the face of it to compare them, but its what SHOULD be done.
To put it in a nutshell, C++ is used because the newer development environments are C++, the newer development environments are C++ because the older are C++.
its a nasty cycle, but as far as the already built stuff goes there's no reason to tear down and start again.
TL;DR?
despite popular belief you don't need to know lower level languages like C++ / C to get into game development or even into the industry of AAA Games. C++ isn't necessarily bad but from word of people much smarter than I, its not going to be the future. If you want to get into the game industry its not a bad skill to know C++, but I see a lot of people with the "Common Knowledge" that its the god language which you need to know to do anything, when it very much is not.
If you want to make a game the key is fast and smooth development, learning a new language isn't often smooth, so if you know a language which your happy with and does not give you significant performance bottlenecks, stick to it, its all you need.