Get started with DirectX for Windows

Creating a Microsoft DirectX game for Windows is a challenge for a new developer. Here we quickly review the concepts involved and the steps you must take to begin developing a game using DirectX and C++.

Let's get started.

What skills do you need?

To develop a game in DirectX for Windows, you must have a few basic skills. Specifically, you must be able to:

  • Read and write modern C++ code (C++11 helps the most), and be familiar with basic C++ design principles and patterns like templates and the factory model. You must also be familiar with common C++ libraries like the Standard Template Library, and specifically with the casting operators, pointer types, and the standard template library data structures (such as std::vector).
  • Understand basic geometry, trigonometry, and linear algebra. Much of the code you will find in the examples assumes you understand these forms of mathematics and their common rules.
  • Have familiarity with COM—especially Microsoft::WRL::ComPtr (smart pointer).
  • Understand the foundations of graphics and graphics technology, particularly 3D graphics. While DirectX itself has its own terminology, it still builds upon a well-established understanding of general 3D graphics principles.
  • Understand the concept of a message loop, because you'll be implementing a loop that listens to the Windows operating system.

And we're off!

Ready to start? Let's review before we head on. You have:

  • An updated and working installation of Windows 8.1.
  • An installation of Microsoft Visual Studio.
  • An intrepid spirit and a desire to learn more about DirectX game development!

Next steps

Topic Description
Work with DirectX device resources Learn how to use DXGI to create a virtualized graphics device, and create and configure a swap chain.
Understand the Direct3D 11 rendering pipeline Learn how to hook into the DirectX device resources class, and draw using the Direct3D graphics pipeline.
Work with shaders and shader resources Learn how to write HLSL shader programs for Direct3D graphics pipeline stages.