Some newbies (like me) do love to code in C++,
Members - Reputation: 121
Posted 27 September 2012 - 10:06 AM
I enjoy learning/coding in C++, mainly because I love challanges, like many people do....(the best thing I like about it is ''whatever you learn - it is small'', compared to the vast language itself.
Major standardardisations also keep making it better (C++11)
In game industry itself, C++ is the best tool for the job for programming game engines (the best of the knights do it!!)
Considering the importance it has, can I say that ”C++ will be used for *game engines* as long as we have AAA titles” ?
Or, can I say that, C++ is going to be THE (only) tool for creating AAA *game engines* as long as we play on vedio game consoles?
Or, in short, can I say that C++ is going to be the vedio game (engine) Industry standard, for a very very long long time ahead?
I would certainly be very happy!!!!
Note : I am strickly talking about the middleware, game engines (add libraries like Direct3d and Open-Gl if you want)..
Crossbones+ - Reputation: 33065
Posted 27 September 2012 - 10:44 AM
"the best of the knights do it!" - The best code warriors use many languages, not just C++. They also used to use Assembly, but just because they are skilled, and they have used assembly in the past, doesn't mean I should use assembly, or even that assembly is currently the best choice.
A more important question is why do they use it? It's not good to say, "they used, therefore it must be good!". Instead you say, "they used it, because they had to for situation X. Since I'm not in situation X, is it still the best or only choice available?"
C++ is not going away anytime soon, and will probably be heavily used for at least another ten years. But once you know C++ very well (or almost any language), then it's not hard at all to jump to a new language when needed.
C++ is not the best suggestion to a new programmer. It's certainly one path that could work (and has worked - I started with C++), but there may be other paths that are better. The question is, what does "better" mean? It's subjective. So instead, we say, "What are the pros, and what are the cons, of C++ verses, say, Python, for someone inexperienced in programming to start with?"
(The Language Flamewar tag is needed here)
Edited by Servant of the Lord, 27 September 2012 - 10:46 AM.
It's perfectly fine to abbreviate my username to 'Servant' or 'SotL' rather than copy+pasting it all the time.
All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.
Of Stranger Flames - [indie turn-based rpg set in a para-historical French colony] | Indie RPG development journal | [Fly with me on Twitter]
Members - Reputation: 191
Posted 27 September 2012 - 11:54 AM
The only reason it's still around is because it's what everybody uses, so if you're hiring C++ programmers for a game, you have a lot more choice than if you're hiring haskell or C# programmers.
Members - Reputation: 5225
Posted 27 September 2012 - 12:36 PM
Members - Reputation: 782
Posted 27 September 2012 - 02:27 PM
If all legacy code and middleware written in C++ disappeared tomorrow you wouldn't really have much of a reason at all to use the language for the most part imo.
That's definitely the major reason to use C++, but it's also got pretty good max performance (not always good average performance) when compared with a lot of other simpler languages, like C#. That max performance is difficult to acheive though, and more often than not it will result in developer error performance handicaps and productivity handicaps elsewhere.
That said, C# is my favorite language atm. It's just so easy to do what I want. D:
Senior Moderators - Reputation: 17609
Posted 27 September 2012 - 02:30 PM
Java, C#, and Python, to name just a few.
Question: which languages aside from C/C++ have manual memory management?
Just because they each have a garbage collector, doesn't mean that you can't manually allocate/deallocate resources as needed.
Members - Reputation: 245
Posted 27 September 2012 - 03:47 PM
"You can't say no to waffles" - Toxic Hippo
Crossbones+ - Reputation: 4335
Posted 27 September 2012 - 05:01 PM
The new Playstation Suite for use on the Vita and phones is based on C# and .Net, and you can also use C#/.Net on iOS, Android, etc. The new Nintendo DevKit includes a special Unity deployment and you develop in C#/.Net. It is an open standard that does not need to be licensed as the Mono implementation is not burdened. Note you can always use AOT for platform specific speed optimizations but realistically the only use for that is on platforms that do not allow JIT (i.e. iOS, Vita, WiiU?)
Think MS is going to license .Net to Sony and Nintendo? Doubtful.
Edited by Saruman, 27 September 2012 - 05:06 PM.
Members - Reputation: 245
Posted 27 September 2012 - 10:38 PM
Edited by BladeOfWraith, 27 September 2012 - 10:39 PM.
"You can't say no to waffles" - Toxic Hippo
Senior Staff - Reputation: 24572
Posted 28 September 2012 - 05:58 AM
The original poster opened a new topic (now closed), but I don't feel it was really needed given how civil this one has been thus far. His question from the other topic is as follows:
I have started a new topic, partly because the older one was eaten up by flame war, and partly because, I want to know the expert likes of game engine developers. Note: This is not a poll. I expect people having a background in HIGH PERFORMANCE AAA *GAME ENGINES* ONLY, to give out their thoughts. (To *game programmers* and game logic programmers - Don't get C#, Java, lua in between).
C++ as we know of it, is used in AAA *Vedio Game Engines* primarily because (correct me) -:
-> Technical reasons » Higher performance, Lower latency overhead, Portability, native runtime.
-> SocioTechnical reasons » Large legecy-active codebase, Availability Of libraries (the libraries will be alwayas more mature), Availability of IDEs and mature documentation. Also many scripting languages in games have a good C api (like LUA, so added up to that codebase, is our higher level lua, python codebase).
-> Social reasons » People dislike it, when MS or Oracle owns a language, People already know C++, There are no direct competetors (and if some people think that Java/C# are, they are wrong. . . C# directly competes with lua, python for game logic)( here I exclusively talk about AAA game engines, so game logic programmers, dont take harm).
C++11 solves the issue of development time, concurrency and learning curve.
Considering this, what is your say on the future of C++? Don't you think, that C++ for at least game engines will be used as long as we have vedio game consoles? Don't you think that we are so much dependent on C++ that virtually we can't do (game engines) withought it?
This is for the game engine programmers only. . . So when we are talking about unity, then be aware that its writern in C++.
You missed one important reason for continued common use of C++ -- it's often the only choice -- unless you want to implement your own compiler and standard libraries, your only choices for targeting consoles are C or C++.
- Jason Astle-Adams.
Crossbones+ - Reputation: 7500
Posted 28 September 2012 - 05:59 AM
Ah, cool. I thought I had read that Mono wasn't legal so it couldn't be used for major commercial stuff like that. Checking the wiki page does sort of semi-agree with the idea that it's of questionable legality, but I guess Microsoft decided it didn't want to start suing people over it years ago.
The parts of mono that are included in the standard are safe, things like WinForms (Which isn't part of the standard but is included in Mono in order for it to run .Net apps written for Windows) might be covered by patents that Microsoft hasn't made any promises about. (There hasn't been any word from Microsoft that suggests that they hold any patents that could threaten mono though),When it comes to API compatibility the Oracle vs Google ruling on dalvik pretty much established that API structures are not covered by copyright so patents are the only threat, Microsoft is not the only company that could threaten mono there and Microsofts .Net is not safe either, allthough if .Net is infringing on someones patents it will be Microsoft who takes that fight. (Oracle holds quite a few JIT and VM related patents for example)
When it comes to games you shouldn't use the Windows stuff anyway(Unless you are developing for Windows) so it is a non-issue and on Android/iOS the Windows specific stuff isn't even included AFAIK.
Edited by SimonForsman, 28 September 2012 - 06:02 AM.
The voices in my head may not be real, but they have some good ideas!
Members - Reputation: 1088
Posted 28 September 2012 - 08:00 AM
I don't believe it is necessarily the best - and I am intrigued in moving to VM languages like Java (which I already know) or C#. Part of the problem is it would be a big investment in changing a primary language that I use (not just learning, but also porting or rewriting code for things like a game engine), so I would want to make the right move long term, but it's still not clear to me what the right direction is for me. (Java is fragmented into at least three different versions - desktop, Android and J2ME; C# is MS-only, though there is Mono.)
Right now I write for Windows, Linux, Android, Symbian, and I'm not sure that anything other than C++ or Python fit that list. C++ has also allowed other people to easily port to OS X, BlackBerry PlayBook, Maemo and Meego. At some point in the future I'll drop Symbian, which makes C# an option if I use Mono for Android and Linux. (I do find it a bit amusing that an MS-only language has ended up being fairly cross-platform, whilst a language intended to be cross-platform has ended up less so...)
What are the choices for cross-platform game development? Obvious ones are C, C++, C#, Python. And C and C++ probably still win in terms of the number of platforms that can be supported (although admittedly, most people only care about a few at most, if they even care about more than one platform at all).
Edited by mdwh, 28 September 2012 - 08:03 AM.
Members - Reputation: 292
Posted 28 September 2012 - 10:45 AM
some are better for something and others not and viceversa.
In my case, where i live we have gameloft and they usually look for Java/C++ programmers, so that's what we learn in school,
but there are a lot of people using C# and Python and many more languages,
not because those are better than C++ but because those languages were more suitable for what they were looking for.
I know that C++ it's a standard in the industry but i don't think this makes it The One Above All.
Members - Reputation: 121
Posted 28 September 2012 - 09:19 PM
Is not C++ the only virtually indispensible choice for AAA game ENGINES??? Dosent all the reasons to use it make it the only viable option even in the future?
Even John Carmack's blog posts show that, we are not going to move away from C++ till many of us are even alive. Unity, panda3d, all are in C++..... There is no choice... (AAA GAME Engines should have no limiting forces.... VMs are limiting.... Only languages competing with C++ are C , rust , D etc)
C# people, please use C# for game programming (logic) and tools.... Dont try to get into GAME ENGINES, because you simply can not.
Crossbones+ - Reputation: 2061
Posted 28 September 2012 - 09:31 PM
Edited by superman3275, 28 September 2012 - 09:32 PM.
I'm a game programmer and computer science ninja !
Here's my 2D RPG-Ish Platformer Programmed in Python + Pygame, with a Custom Level Editor and Rendering System!
Here's my Custom IDE / Debugger Programmed in Pure Python and Designed from the Ground Up for Programming Education!
or Personal-Message me on here !