I recently started modifying the already quite old “Programming a Multiplayer FPS in DirectX” of Vaughan Young while reading my way through the book. The book dates from 2004 and uses a lot of obsolete APIs of the DirectX 9.0 framework such as D3DX9, DirectInput, DirectPlay and DirectMusic.
In order to include all the right header and libraries these days, one can download and install the “DirectX 9.0 SDK (October 2004)”. Instead, I originally wanted to avoid this older version and just use what is available in the Windows kits.
Dinput.h is still available and I prefer this one over Xinput.h. Furthermore, I use DIrectXMath.h with its XMVECTOR/XMFLOAT3/XMFLOAT4 as a replacement for the D3DXVECTOR3/ D3DCOLOR stuff of D3D9X.h and use D3D11.h with its D3D11_INPUT_ELEMET_DESC as a replacement for the Flexible Vertex Format Constants. As a programmer with no prior experience with DirectX at all, so far I seem to have managed working myself through the book.
But now I am at the rendering/sound/network part which heavily relies on D3DX9.h, Dmusici.h and Dplay8.h. Especially for the last two APIs, there does not seem to be comparable alternatives at a same abstraction level if I am correct? In which case it is probably the best to stick to DirectX 9.0? I have a background in graphics, so I definitely want to make the graphics part working and thus dig myself through the new Direct3D features. For the sound and network part, I rather want to implement something that does the job and is fully understandable without starting to learn two complete different APIs (i.e. obsolete and new one).
My initial purpose was to program a complete game engine + game that uses this engine to have some touch with all the practical aspects. From then on, I probably only want to change the scripting and rendering part.
Any suggestions would be valuable.