• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
sankrant

Some newbies (like me) do love to code in C++

36 posts in this topic

C++, which is important in our digital industry, is *indispensible* in the vedio game industry.
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)..
0

Share this post


Link to post
Share on other sites
I also enjoy C++; but just because I enjoy it, doesn't make it the best choice. [img]http://public.gamedev.net//public/style_emoticons/default/wink.png[/img]

[i]"the best of the knights do it!"[/i] - 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]I[/i] should use assembly, or even that assembly is currently the best choice.

A more important question is [i]why[/i] do they use it? It's not good to say, "[i]they used, therefore it must be good![/i]". Instead you say, "[i]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?[/i]"

C++ is not going away anytime soon, and will probably be heavily used for [i]at least[/i] 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, "[i]What are the pros, and what are the cons, of C++ verses, say, [url="http://www.python.org/"]Python[/url], for someone inexperienced in programming to start with?[/i]"

([size=2]The Language Flamewar tag is needed here[/size]) Edited by Servant of the Lord
0

Share this post


Link to post
Share on other sites
The only people I've ever met who consider C++ to be an adequate solution for creating videogames are people who have never programmed in a language that wasn't C++.

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.
0

Share this post


Link to post
Share on other sites
Eh, I think the reason a lot of people still use C++ is because they've spent significant amounts of time and effort (which equals money invested) building their own game dev apps & toolsets in C++. There's also the fact that a lot of people are already experts in C++, so it'd be a bit of an uphill battle to get studios to switch to another language. But, I think the transition to other languages like C# is already happening gradually.
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
[quote name='n3Xus' timestamp='1348777258' post='4984480']
Question: which languages aside from C/C++ have manual memory management?
[/quote]

If I remember correctly, Ada has a form of it (and a form of RAII, too, again IIRC) and some dialects of BASIC and Pascal do, as well.
0

Share this post


Link to post
Share on other sites
[quote name='Saruman' timestamp='1348775259' post='4984472']
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.
[/quote]

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:
0

Share this post


Link to post
Share on other sites
[quote name='n3Xus' timestamp='1348777258' post='4984480']
Question: which languages aside from C/C++ have manual memory management?[/quote]
Java, C#, and Python, to name just a few.

Just because they each have a garbage collector, doesn't mean that you can't manually allocate/deallocate resources as needed.
0

Share this post


Link to post
Share on other sites
Yes, C++ is going to be the primary language you'll see major game engines developed in. Console development will be C++ based for at least another 10 years. Think MS is going to license .Net to Sony and Nintendo? Doubtful.
0

Share this post


Link to post
Share on other sites
[quote name='BladeOfWraith' timestamp='1348782429' post='4984505']
Think MS is going to license .Net to Sony and Nintendo? Doubtful.
[/quote]
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?) Edited by Saruman
0

Share this post


Link to post
Share on other sites
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. Edited by BladeOfWraith
0

Share this post


Link to post
Share on other sites
I was exclusivly talking about game engines.
Program the game in any fringe language.... Program the game engine in C/C++
0

Share this post


Link to post
Share on other sites
[b]Note:[/b]

The original poster opened [url="http://www.gamedev.net/topic/631961-c-for-aaa-game-engines/"]a new topic[/url] (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:
[quote name='sankrant' timestamp='1348832338' post='4984688']
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++.
[/quote]


You missed one important reason for continued common use of C++ -- [i]it's often the only choice[/i] -- unless you want to implement your own compiler and standard libraries, your only choices for targeting consoles are C or C++.
0

Share this post


Link to post
Share on other sites
[quote name='BladeOfWraith' timestamp='1348807112' post='4984604']
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.
[/quote]

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
0

Share this post


Link to post
Share on other sites
I stick with C++ because I know it, I can port to lots of platforms with it (including mobile), and I have a code-base built up with existing engines.

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
0

Share this post


Link to post
Share on other sites
Actually i agree with you, i love C++ and i'm not very experienced, but lets remember that programming languages are like tools,
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.
0

Share this post


Link to post
Share on other sites
Ok, this question is to the game engine developers only, (please don't bring C# in between as it competes with lua, python)
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.
0

Share this post


Link to post
Share on other sites
Wait, a new poster on the forum is asking all non C++ Programmers to stop making game engines, while he only knows c++, and is acting pike an expert on all languages. Either he's a troll(Likely) or just doesn't know what hes talking about. Edited by superman3275
0

Share this post


Link to post
Share on other sites
I am not a troll.... If you read the post, it clearly states AAA game engines... Oh ok, you were saying something about *game engines* in C#? Please name a few?
0

Share this post


Link to post
Share on other sites
Yes, C++ is currently the go-to choice for AAA engine development, that's correct.

The commonly cited reasons for using it will likely to continue to be good reasons for continued use of C++ in the future. Again, you are correct.

Do those reasons mean it will be the [i]only[/i] viable option in the future? [i]No[/i] -- of course not. Consider that C used to occupy the role of most popular choice for AAA development and that all the reasons it was a good choice are still valid; the industry has still largely moved on to C++ because it offers us newer features and the potential for easier development and increased productivity. Whilst the majority of reasons for using C++ will likely continue to remain valid, that in no way makes it the [i]only[/i] choice. It's likely to remain a popular choice for at least the next 5-10 years, but you simply can not say with certainty (or even any high likelihood) that it will be the [i]only[/i] choice.



My biggest question would have to be "[i]why do you care so much[/i]"? You're not a AAA engine developer, so you're free to use whatever language you like for your personal projects. If your personal preference is to use C++ then that's a perfectly valid choice, and no one is stopping you.


If you want to develop as a hobbyist or independent developer you can use [i]any language you like[/i].

If you end up doing professional non-games programming you might be likely to use a wide range of programming languages; some of the popular choices include C#, Java, C++ and Python, amongst [i]many[/i] others.

If you end up doing professional games programming, again you might be likely to use a wide range of programming languages. Lua, Python, C#, C++, Java and many others are used.

Low level AAA engine development is done by expert programmers with [i]years of experience[/i], and I would be [i]very[/i] surprised if any of them knew only a single programming language. If your goal is to eventually work in this field you will need years of programming experience, and by the time you get there C++ may [i]or may not[/i] still be the commonly used language; either way, your years of experience will be valuable [i]no matter which language languages you've been using[/i]. It's a relatively trivial matter for experienced programmers to pick up new languages, and someone with years of experience will have likely had at least some exposure to a huge range of languages.


If you enjoy programming with C++ then go ahead and use it, and enjoy the experience. The knowledge and experience you gain over the years will be valuable and will serve you well in future development whether C++ is the language you end up having to use or not. It doesn't matter if C++ will still be the language of choice in future, and you can not possibly know if it will be or not.
0

Share this post


Link to post
Share on other sites
I am somhow not able to quote and upvote, but @jbadams nice answer.

The industry changed from C to C++ maybe because,
1. The C++ compiler was able to compile C too, ie it was a superset.
2. There was less legecy and active code, then it is now.

Actually, I used to hate to program in C++, earlier. Then, deducing by the reply to my tweet to John Carmack, I came to the conclusion that 1) C++ is majorly used for AAA game engines. 2) Nothing, could be able to replace it in the large future time frame. The only way to overcome C++ fear was to love it.

Then, I had an idea... Why not ask the game engine developers about this on gamedev? I started a new post, and all I got was C#. That was the dilema.....
If there is going to be a change, then I would be more then happy, if Rust or D get in; but unhappy if Java/C# get in.
0

Share this post


Link to post
Share on other sites
[quote name='sankrant' timestamp='1348892002' post='4984954']
I am somhow not able to quote and upvote
[/quote]
You should be able to quote, but up (and down)-voting is intentionally not enabled in our off-topic forums (The Lounge; Comments, Suggestions & Ideas; and Your Announcements) because many of our members feel it is not appropriate that your reputation score should be effected by off-topic discussions.

[quote name='sankrant' timestamp='1348892002' post='4984954']
I started a new post, and all I got was C#.
[/quote]
Well, you aren't a AAA engine developer, and even if you're aiming to become one you'll need years of experience and will probably learn multiple languages before you get there. Expert programmers do not just know a single language -- they know at least a handful and are able to learn more as required. John Carmack (to take your example) definitely knows at least assembly, C, C++ and Objective-C, and I'd be willing to bet he has at least some experience in numerous others. If you want to be a guru programming expert you will learn a selection of languages and choose the appropriate one for the task at hand.

As such, it's not inappropriate to suggest learning a more approachable language that is arguably more suitable for the types of tasks you will be tackling in the shorter term. C# is a great choice for a beginner to game programming -- or programming in general -- and is also a language that is used extensively in the world of professional business programming. It's also a great choice for an independent developer, and is being used more and more by professional games developers. The knowledge gained programming in C# (or any other language) will also give a big head start if you later need to learn C++ (or other languages). I'd say that makes it a pretty good language to recommend to a beginner.

That being said, some people do simply prefer C++ and that's absolutely fine; if C++ is the language you want to use then you're welcome to use it, and you'll find plenty of people willing to help with any problems you encounter along the way. In the meantime, we'll go right ahead and continue to recommend C# (and other languages) as a sensible (and generally more approachable) choice for beginners.
0

Share this post


Link to post
Share on other sites
em, you are tempting me to try XNA and C#.... But I will go with C++ with Irrlicht. (thats my final decision).

How ironical that, the fate of lakhs of C#/XNA devs hang with microsoft and there are questions 'will microsoft bring out the next version of XNA for metro style apps?' or more direct ones 'Seeing that microsoft is putting C# on a back burner, what is the future of C#' ?
There are many five-ten year old post claiming that C++ will be used for ten years more!!!..... After 10 years some foolish like me will ask the same thing, and the answer will be '10 years or so' !!!! Similar posts of C#/java can be seen on the forums, claiming that they will be used for ten more years....
Quite foolish of me to start this post. I will live in the present, cause future and past never come!!!
0

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0