This is my first post on the forums, so I thought starting at "beginners" is always a good idea.
Basically I have completed a course on C++ as well as Java and wish to go into big game development.
I have chosen C++ and DirectX (I suppose that will be Direct3D) due to maximum performance and most flexible control (low-level ?), in high hopes I have made the right decisions.
Unfortunately I am a "fresh A4 list" when it comes to graphics programming or non-web game development. I am lost with the choices I made and ask for guidance:
- I can only guess that Visual C++ is the best compiler to be using ?
- Which DirectX would I require and where do I get it ? There are so many different versions it's all confusing, I believe I should be getting a DirectX SDK ? The latest I found linked to something to do with Windows 8, I don't even want to go near Windows 8 or they "Windows store" and whatnot.
- Just to make it clear, DirectX is free for whatever use right ?
- Where would I find an up-to date tutorial, dealing with C++ ? Most are outdated and based on C.
Hey, I'm glad you have choosen the awesome path of C++ and DirectX. Both are great for maximum graphics performance and both are actively used for AAA titles, so make no mistake - you are on the right way.
1. Yes Visual C++ is the best by far. You can grab the free Visual Studio 2012 express for Desktop. It's completely free and can be used for product builds for free as well. You do have to register, but noone checks information you provide - key will be granted to you almost immediately after you push Submit. See this video.
2. You can choose between old SDK (June 2010) and new one which is already built in Windows 8 SDK, installed on your PC with VS 2012 Express. The last SDK doesnt have D3DX-helper components from previous one. But it's not a bad thing, since those part are never used in production. As a very big plus, you will actually learn how to handle model files, lights, textures and other type of things by yourself and understand this process instead of relaying on MS-provided D3DX library. Additionaly there won't be any D3DXVECTOR3 types from previous DirectX10 math library - DirectXMath is the new one, which is based on XNA Math and is now official math library for DirectX 11.
3. Yes DirectX is completely free.
4. I'd suggest you to start right from DirectX11, since it allows you to run your programs on DirectX9-DirectX11.1 hardware alltogether (by disabling new features on old hardware, ofcourse). Here is a good guide for DirectX11. However don't hesitate to look at DirectX10 examples as well, because DirectX10-DirectX11 interfaces are almost the same, excluding some few advanced features, provided in latest.
You will not find a good guide specially dedicated to Windows 8 DirectX SDK (well this one is the only one, which comes into my mind), but you can use the D3DX ones anyway, just wrap your head over getting reed of old D3DX-helpers. Learning without books is a hard choise for beginner. However, if you change your mind, I strongly recommend you to look at Frank De Luna DirectX 10-11 books - they are perfect.
If you don't want to use the lattest MS suggestions, just grab VS2012 Express and July 2010 DirectX SDK and copy-paste linked tutorials =)