Search code examples
directx-10

Cannot open include file dplay8.h .No such file or directory


We are converting directx9 to directx10 and we are getting an error: Cannot open include file :dplay8.h . Please provide the solution how to resolve this and also the steps that might required to convert from directx9 to direct10.


Solution

  • DirectPlay is a deprecated legacy component. The last version of the legacy DirectX SDK to include the headers for it was August 2007. See DirectX SDKs of a certain age. It is not available in any Windows SDK.

    It exists in the Windows operating system today for appcompat only. There are a number of important limitations to keep in mind:

    • DirectPlay Voice is not supported on Windows Vista or later operating systems. See KB970978

    • The NAT helper object is unsupported on Windows Vista or later

    • On Windows 8.x and Windows 10, DirectPlay is an optional Windows feature so it's not present by default. It has to be enabled by the user.

    In short, you shouldn't use it. You should plan to rewrite the multiplayer support for that porting project, or strip it out.

    DirectPlay's primary value was back when networking was a complex and evolving world: modem play, head-to-head serial ports, IPX/SPX, TCP/IP over modem, and TCP/IP. At this point TCP/IP is the only network solution that matters so using WinSock directly is far preferable. There's are also a number of security implications around use of UDP (datagram) vs. TCP (virtual circuit) that modern games need to take into account. The lobby mechanism of DirectPlay is also woefully outdated.

    There are numerous modern game services (such as Xbox LIVE, Valve's Steam, etc.) that are designed to provide the match-making, NAT-traversal, and other features that are essential to modern multiplayer. You use WinSock in combination with service-specific libraries.

    In a related note, there is absolutely no reason to use DirectX 10. DirectX 11 supports much more hardware, is supported on all the same operating systems (Windows Vista SP2+), and has numerous replacements for legacy support libraries that don't exist for Direct3D 10.