• 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
Gl_Terminator

How long until c++ disapear from game development


44 posts in this topic

[quote name='Telastyn' timestamp='1315956488' post='4861308']
Even in the best of cases where you re-use a core engine you keep that what? 10 years?
[/quote]

A few months ago I ran across a comment in our very old engine. It basically said "The third rewrite is the charm, hope this works forever". The date on the comment was 1997.

A solid game engine can last much more than 10 years. It will naturally evolve and grow but the core can have a very long and hardy life.

The Quake engine is approaching 20 years old. Renderware is over 15 years old and has been incorporated through many EA projects. The original Sims Engine now powers the 3DS game and is over 15 years old. The Open Dynamics Engine recently celebrated its 10th birthday. These are in decline and tend to support your ten year theory.



But others, like the C4 engine, Unity, PyGame, and others are likely to still be trending growth on their 10th birthdays.

We are seeing the game engines start to mature into long-term products. I expect a few will last 30-50 years and persist for decades more as legacy tools and apps.



C++ will not disappear from games for a long, long, long time. I can easily imagine job hunters in the year 2100 looking for legacy C++ coders for game engines and tools. It is not so different from the older languages we use today, notwithstanding your dislike of the comparison with COBOL, Fortran, and other older languages which are very much alive even though 60 years have passed over their heads.

BASIC predates C by a decade and yet we still see that language evolving and in active use in games with no end in sight.
0

Share this post


Link to post
Share on other sites
[quote name='Yours3!f' timestamp='1315937566' post='4861191']
I hope it will never-ever because its the only language I'm good at :)

to take it seriously I think because someone can't handle c++ (and uses c# etc.) doesn't mean that it should be avoided. It only means that c# is good for learning programming and c++ is for hardcore, performance-aware programmers.
[/quote]

Sorry, but that's nuts. "I'm hardcore because I use a more difficult language" is just wrong on so many levels. And as for performance - cases can be constructed where C# wallops C++; even heavily optimized C++ by someone who knows what they're doing (Raymond Chen has one on his blog but I can't find the link just now).

I voted "Never" just because it was the most reasonable answer - more like the best of a bad lot as predicting an exact timeframe seems even more silly. "Don't know but not for a pretty damn long time and most likely well after I'm pushing up daisies" would have been a better option.
0

Share this post


Link to post
Share on other sites
[quote name='phantom' timestamp='1315958530' post='4861323']
Yes, many people can go off and code in Python, Java, C#, VB.Net and JavaScript and will get their work done faster than if they did it in C++ and with a runtime which is fast enough. However these people rely on others to develop their platforms, their compilers, their optimisations and JIT compilers... [/quote]

And c++ programers rely on CPU and hardware designers and they don't complain about that, men you have just discovered how this world works. :lol:
0

Share this post


Link to post
Share on other sites
I still think that "never" is a stupid answer. This means that c++ will be use for game development an infinite number of years from now. It means that when games no longer exist, humans disappeared from the universe, and the earth has been swallowed by the sun, c++ will still be in use in game development.

I think that at some point between now and the end of the universe we are going to see a change in computers which means c++ is no longer used for game development. So, "Never" is the stupidest possible answer.
2

Share this post


Link to post
Share on other sites
[quote name='Gl_Terminator' timestamp='1315942404' post='4861225']
Of course the day when you loose access to hardware will come, but that is the day when informatics will face more serious problems than now, when a computer will manage complex things that humans do, WHO WILL CARE for a lots of stuff you care now. For the other side take an example of shader languages, they are high level languages and they run on video cards faster that any c/c++ application does. You need to understand that is natural evolution. For example you are forced to write languages and OS in Intel or AMD architecture and you don't complain about that. If you think you can make an improve you cant do anything.
[/quote]

I'm sorry, how is GLSL a high level language (I don't know about the direct X shader language, but I can't imagine it's very different)? It's not managed, they have to be compiled and linked, and they're strictly procedural. GLSL reads like a subset of c++.

If they run 'faster', it's because you are running the programs in a hundred processors at once, and they have direct access to the video card's video memory instead of having to send the information each frame (if you were using immediate mode, for example).

I have to agree with the people saying that we'll never be quite ready to give up on low level access, and the performance that doing away with abstraction gives us. It may not be c++ exactly that holds onto market share a couple of decades down the line, but the need for it will not be going away soon.
0

Share this post


Link to post
Share on other sites
With Win8 now out, it's clear that WinRT is a managed runtime, a slightly tweaked .Net CLR. Future C++ development for Windows will now require proprietary managed C++, so talk of "standard-compliant" C++ in future versions of Windows is mostly moot, at least as far as consumer markets go. Win8 will be the start of transition towards Windows being a full .Net stack, taking hardware vendors out of the equation.

The old run-time will continue to serve legacy applications but will likely be delegated into running as virtualized. Since it doesn't appear that Win32 will be getting any of the new facilities, Win32 doesn't look like viable commercial option for the future.

I'd estimate that despite being listed as C++, native code in Metro will be phased out during 8 and 9 since C++/CLI Metro apps can just compile to bytecode instead. To those that might remember the "undocumented API" wars of the 90s, this is Microsoft's perfect execution of that. And unlike 10 years ago, they no longer have a monopoly, so they're free to do as they please with courts not being able to touch them.

While it may not seem like a big deal, this change makes all existing tools and just about all third-party libraries obsolete as far as Win8+ goes. And with release cycles, my guess seems to have been quite accurate. Moore's law and current characteristics of mobile devices imply that during the next 2 versions managed runtime will become sufficient for effectively all but most demanding applications, effectively giving Microsoft better platform exclusivity than what Apple has today.


Outside of legacy support, this leaves Google as the last C++ supporter. But unlike Apple or Microsoft, they don't have their own desktop platform, an IDE, a business API (role of .Net) nor a compiler. Overall, a fairly poor position to be in. And with mobile market finally being completely partitioned and interoperability no longer relevant, it might force Google to push for their own exclusivity by introducing their own technology stack, they just lack anything even resembling a mature alternative.
-2

Share this post


Link to post
Share on other sites
[quote name='Kian' timestamp='1316009682' post='4861557']I'm sorry, how is GLSL a high level language (I don't know about the direct X shader language, but I can't imagine it's very different)? It's not managed, they have to be compiled and linked, and they're strictly procedural. GLSL reads like a subset of c++.[/quote]

Once upon a time all high level languages were like that. Direct3D's language is in fact called HLSL - standing for High Level Shading Language - pretty explicit, I would have thought. You should see some asm shaders.

[quote name='speciesUnknown' timestamp='1316008332' post='4861547']
I still think that "never" is a stupid answer. This means that c++ will be use for game development an infinite number of years from now. It means that when games no longer exist, humans disappeared from the universe, and the earth has been swallowed by the sun, c++ will still be in use in game development.
[/quote]

And the really scary thing about that image is the thought of how even more convoluted Bjarne may have made it by then!
0

Share this post


Link to post
Share on other sites
[quote name='arthurviolence' timestamp='1316021162' post='4861646']
Never just means that as far as we can see, it wont. No need to overreact.
[/quote]

Sorry, "Never" has very simple and established meaning. "At no time in the past, present, or future; on no occasion; not ever". It doesn't mean something different just to fit your convenience.

I voted 20 for the same reason as others: If the choice is between 20 and Never, 20 is the closer answer of the two.
-1

Share this post


Link to post
Share on other sites
C++ will stick around until something that comes along that : a) has parallel programming as an integral part of the language; b) has a toolchain that compiles/generates native binary for the platform; c) has a syntax that which is not as horrid as Objective-C or Pascal derived languages. Oh and something that is equally supported/available on most platforms would be nice, too.

Basically an object oriented parallel programming language, with C# or C++ -esque syntax is probably the way to go. That said, some concepts in Obj-C is not bad either, so we need to cherry pick the best features from each respective language.
0

Share this post


Link to post
Share on other sites
[quote name='Tachikoma' timestamp='1316023021' post='4861666']
C++ will stick around until something that comes along that : a) has parallel programming as an integral part of the language; b) has a toolchain that compiles/generates native binary for the platform; c) has a syntax that which is not as horrid as Objective-C or Pascal derived languages. Oh and something that is equally supported/available on most platforms would be nice, too.

Basically an object oriented parallel programming language, with C# or C++ -esque syntax is probably the way to go. That said, some concepts in Obj-C is not bad either, so we need to cherry pick the best features from each respective language.
[/quote]

It probably needs to be mostly code compatible with C++ aswell to gain momentum. (Its one of the big reasons C++ managed to replace C in many fields, its easier to transition to a "new" language if you can keep doing what you've always done), The most likely replacement for C++ is a newer better version of C++ , if the standard branches we might get a replacement with a different name.
1

Share this post


Link to post
Share on other sites
[bquote]With Win8 now out, it's clear that WinRT is a managed runtime, a slightly tweaked .Net CLR. Future C++ development for Windows will now require proprietary managed C++, so talk of "standard-compliant" C++ in future versions of Windows is mostly moot, at least as far as consumer markets go.[/bquote]

This image would suggest that isn't exactly the case:
[img]http://www.readwriteweb.com/hack/110913%20Windows%208%20Platform%20diagram.JPG[/img]
0

Share this post


Link to post
[quote name='Tachikoma' timestamp='1316023021' post='4861666']
Basically an [s]object oriented[/s] parallel programming [i]aware[/i] language, with C# or C++ -esque syntax is probably the way to go. That said, some concepts in Obj-C is not bad either, so we need to cherry pick the best features from each respective language.
[/quote]

Fixed that for you.

OO is not the be all and end all of programming; make it possible to do it, fix some of the issues with C++'s version of it but do not focus the language on it.
1

Share this post


Link to post
Share on other sites
[quote name='Gamer Gamester' timestamp='1316045280' post='4861809']
Antheus, your posts depress me...

Can the Linux save us?
[/quote]

Oh god, if Linux is the answer, we are all screwed!
0

Share this post


Link to post
Share on other sites
[quote name='Kian' timestamp='1316009682' post='4861557']I'm sorry, how is GLSL a high level language (I don't know about the direct X shader language, but I can't imagine it's very different)? It's not managed, they have to be compiled and linked, and they're strictly procedural. GLSL reads like a subset of c++.[/quote]Umm, maybe the definition has changed over the years, but when I was in school, almost anything that wasn't assembly was a high level language. C/C++/C#/Cg are all high level languages.
0

Share this post


Link to post
Share on other sites
[quote name='Hodgman' timestamp='1316049042' post='4861827']
[quote name='Kian' timestamp='1316009682' post='4861557']I'm sorry, how is GLSL a high level language (I don't know about the direct X shader language, but I can't imagine it's very different)? It's not managed, they have to be compiled and linked, and they're strictly procedural. GLSL reads like a subset of c++.[/quote]Umm, maybe the definition has changed over the years, but when I was in school, almost anything that wasn't assembly was a high level language. C/C++/C#/Cg are all high level languages.
[/quote]

As someone who is probably the around same age as you ( when C was consider a high level language ), the definitions have very much changed, and frankly regardless to it's stupid name, GLSL is not a high level language by today's standards.


Now, the worst part is, it comes down to a matter of semantics, as "high level" is short hand for "a high level of abstraction". You can easily argue if something is "highly" abstracted or not till the cows come home, but to get away with vagaries like "high level" you need to compare yourself to your contemporaries, in which regard, GLSL is anything but high level.
0

Share this post


Link to post
Share on other sites
I see no reason that an evolving language would disappear from game development in our lifetime.
As long as the language is evolving then whatever wonderful things become popular in one language will eventually make their way into C++. It is only the things that fundamentally cannot be done from the paradigms possible in C++ which would ultimately become a major obstacle.
It's just really a question of whether the right features make it in quick enough, whilst also taking the time to thoroughly evaluate and eventually leave out those that would later widely be criticised as a mistake (like throw specifications).
A few thoughts:

Did Pascal die out? That's debateable. Sure it evolved somewhat into various incarnations which got their own name such as Delphi and now the latest one being oxygene. But really, it's still pretty much Pascal right. "If you call a rose by any other name...". :blink:

What about Basic, did that die out? I wouldn't say so. The main contender currently being VB.NET. Again, it's still pretty much Basic. :o

And if you are of the position that when a language changes then it's dead and a new language is born, then how many times has C++ been reincarnated so far...? :huh:

The C++ of 30 years from now might have considerable differences from what it does today, but it'll still be there and used in game development, even if I'm the only one left using it dammit! :P
0

Share this post


Link to post
Share on other sites
I honestly don't see a point in this thread. These threads never result in much productive anything.
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