Directx ,c++, and the future?

Started by
9 comments, last by bobsaget 15 years, 8 months ago
After several previous threads that ended with the same question and a lack of an answer I want to ask you guys this. For background I have a good knowledge of C++(even though some of the errors in vs 08 confound me such as deleting the debug folder solved the problem)(college course) and a pretty decent one on win32. I want to go further with graphics with the c++ and win32 and want to get a job in it. The thing I want to know Is the future with c++ and the DirectX scene because as of late microsoft has been pushing as well as several of the old proponents of win32 wpf; also saying it is very good for development as well as pushing other managed alternatives. I understand In the computer and dev world languages and techniques become obsolete very fast but what is the future for win32 and un managed dx? thank you
Advertisement
Quote:Original post by bobsaget
After several previous threads that ended with the same question and a lack of an answer I want to ask you guys this.


I broke my crystal ball a while back, so my sight into future is very limited right now.

Quote:I want to go further with graphics with the c++ and win32 and want to get a job in it.


You'll need to talk to Microsoft, since they are the ones developing win API. Others don't, and can't, work on it.

Quote:The thing I want to know Is the future with c++ and the DirectX scene because as of late microsoft has been pushing as well as several of the old proponents of win32 wpf; also saying it is very good for development as well as pushing other managed alternatives. I understand In the computer and dev world languages and techniques become obsolete very fast but what is the future for win32 and un managed dx?


They will stay around for as long as there is need for them. When there is no longer need, or if they get obsoleted by different technologies, there will be no need for those anymore.

Ask yourself this: What kind of future is there in 5lb. hammers? Will they keep on being used, will you get paid for using them, will you get a job in 5lb. hammers?


Last, and most important - everything is worth exactly as much as someone is prepared to pay for it. I'm willing to bet if you look hard enough, someone somewhere may be willing to pay you to work with ENIAC.
This is all very subjective, so this is just my 2p.

Firstly, we're in this same position as usual - learning a language or an API is a very small part of learning to program. Once you have learned to program, moving from one language or API to another is comparitively trivial.

Consider Joe A, who can't program at all, and Joe B who is an expert at Win32 API programming with C++. If the UN suddenly pass a law outlawing all use of C++ and the Win32 API (which they probably should), Joe B is going to get with the program using .NET or whatever a lot quicker than Joe A.

Secondly, C++ is pretty much a bloody mess. However, it has been a massive commercial success mainly because it is sort of compatible with legacy C code and C programmers could be asked to switch over to it without as much (or any - yikes!) expensive retraining.

Therefore the existance of legacy code is a major factor in the longevity of a language. Therefore I suspect we'll still be grappling with boilerplate C++ when we are writing the software for the holodecks (although hopefully by then the auto variable type will make our for loop lines a bit shorter).
Quote:Original post by bobsaget
After several previous threads that ended with the same question and a lack of an answer I want to ask you guys this.

For background I have a good knowledge of C++(even though some of the errors in vs 08 confound me such as deleting the debug folder solved the problem)(college course) and a pretty decent one on win32.

I want to go further with graphics with the c++ and win32 and want to get a job in it. The thing I want to know Is the future with c++ and the DirectX scene because as of late microsoft has been pushing as well as several of the old proponents of win32 wpf; also saying it is very good for development as well as pushing other managed alternatives. I understand In the computer and dev world languages and techniques become obsolete very fast but what is the future for win32 and un managed dx?

thank you


Which particular future are you worried about?
C++ will be here tomorrow, and next week. And next year. 50 years from now? Who knows.
but even if Microsoft were to say "We're gonna stop developing DirectX" tomorrow, would that affect you?
Would that make your existing DirectX code less useful? Would it break existing applications?
No, no and no.

Quote:I understand In the computer and dev world languages and techniques become obsolete very fast

No they don't. A lot of alternatives pop up very quickly to *try* and replace existing ones. But that doesn't make them obsolete. C and C++ aren't obsolete yet, despite being 20+ years old.
COBOL isn't entirely dead yet, despite being, well, ancient.
x86 processors aren't dead yet, and probably won't die any time in the next 50 years.

Don't worry about what is "obsolete" and what isn't.
If you want to learn to do 3d graphics, DirectX isn't a bad choice
And if you already know C++, then working in C++ might not be a terrible idea either.
C++ is here to stay for a long, long time. For "real" video game programming (I use the term lightly, I'm referring to your typical dev studio) all graphics programming is done either in C or more likely C++.

If you're wondering about whether DirectX is a good graphics API to master - YES! But only if you want to develop for Windows and XBox. OpenGL is also an excellent API, and one that is supported on Windows, Mac, Linux, and the PS3. (PS3 being OpenGL ES)


So in summary, yes! :)
Quote:Original post by Spoonbender

Which particular future are you worried about?
C++ will be here tomorrow, and next week. And next year. 50 years from now? Who knows.
but even if Microsoft were to say "We're gonna stop developing DirectX" tomorrow, would that affect you?
Would that make your existing DirectX code less useful? Would it break existing applications?
No, no and no.


to put this point in perspective, C was developed in the.. 60's was it? I forget when the K & R book was first published, there are still billions, and billions of lines of legacy code around that is still used. even look at nehe's tutorials, Dave Astle's openGL books use malloc and c i/o, c++, on top of being the domianant game dev language for the last 2 decades, it is hugely connected to C, so if anyone's just waiting until c++ goes away, I wouldn't hold my breath


and btw, isn't managed DirectX a goner already? wasn't it ditched in favor of expanding XNA?

and since winforms, wpf, and anything esle windows related is based on win32, c++ and win32 are going to be around FOREVER!! ok maybe not, but for a very long time
--------------------------------------Not All Martyrs See Divinity, But At Least You Tried
Quote:Original post by godsenddeath
I forget when the K & R book was first published

I believe it was 1978, but the first description of K&R C was in 1972.
I wish people would stop listing PS3 as a good reason for OpenGL. You aren't allowed to program for OpenGL, so it doesn't apply to 98% of the people here, and then if you do get on a ps3 dev team, you are going to be using LibGCM.

If you want to learn graphics programming, DX will suit you fine. You only need to know a little bit of Win32 to start using DX anyways. You just need to know how to manage your window, and the rest is straight C++ and D3D drawing code.

If you are just getting started, I recommend using C# and XNA. You'll move along a lot faster, and be able to focus on your graphics, instead of learning how to type out 800 lines to get a window running, and other things. Also, C# can move you along faster, as you won't have to deal with C++'s warts and other things that make programming a bit more of a chore than it should be. But that's just my opinion. I think C#/XNA is the perfect beginner path for starting games development.

In the end, graphics programming is really the same anyways. You make arrays of triangle data, set up your shaders, and send it to the GPU. It all ends up being content driven. It doesn't matter what language or API ends up being in use. It's the ART that makes the difference in the end.
The most important thing that hasn't really been mentioned yet is that being able to program well is API and language independant!

If you lean DirectX and C++ then get hired and need to code in OpenGL using Delphi it won't matter. I did almost exactly that actually - I knew java and c++ from uni and got hired as a Delphi coder. After a few weeks it made almost no difference. Its the mindset thats important.

If you can code in C++ well, and use the DirectX api todo what you want and do it cleanly then it won't matter what your future employer uses. Learning syntax and specific API calls takes a little bit of time reading docs and google. Learning how to organise your class or impliment a physics engine is the hard bit, but luckily its the bit that works the same in virtually all lanuages!
Quote:Original post by Daaark
I wish people would stop listing PS3 as a good reason for OpenGL. You aren't allowed to program for OpenGL, so it doesn't apply to 98% of the people here, and then if you do get on a ps3 dev team, you are going to be using LibGCM.


Why not? Its a valid choice - I can't speak of anything specific (You know the drill), but I do know of at least one studio who ditched gcm for straight forward OpenGL porting of their titles. Unless you're developing a AAA title on the PS3, there's no reason you can't use OpenGL ES on the PS3. You get a lot more performance out of libgcm, true, but the majority of games people here are developing aren't going to push the PS3 to its limit.

This topic is closed to new replies.

Advertisement