Windows 10 offers new opportunities to create, distribute, and monetize games. Learn about porting and publishing your game.
- Prepare your DirectX game programming environment
- Add Windows Store features for DirectX 11 games
- Prepare your Windows game for publishing
- Port from DirectX 9 to Windows Store
- Port from OpenGL ES 2.0 to Direct3D 11
- DirectX game development and sample walkthroughs
- Additional game programming resources
DirectX gives the highest fidelity and richest experiences in 3D gaming. DirectX supports a wide range of graphics feature levels, from DirectX 9.1 to all the latest hardware features exposed in DirectX 11 and 12. DirectX allows you to tailor your game to every PC, from power-efficient ARM-based portable tablets, to over-clocked multi-GPU gamer rigs.
With C++, you write high-performance code that has a direct line to the GPU, CPU and low-level platform services. The syntax of the C++/CX language extensions approaches the simplicity of C#. You get transparent object management via reference counting, and yet there’s no runtime layer, garbage collection or just-in-time compilation behavior that could compromise the smooth performance of your game.
It's easy to integrate the various components of the DirectX graphics stack by using DXGI, the DirectX graphics infrastructure. Direct2D, Direct3D, DirectCompute, and Microsoft Media Foundation components are easier to use together and require fewer duplicated resources than in previous versions of DirectX. There is built-in support for the Xbox controllers with the XInput library. To learn more, see Working with input and controls in your DirectX game. The improved APIs for audio and sound mixing with XAudio2 are covered in the Working with audio in your DirectX game section, and simplified math functions and types are covered in the DirectXMath Programming Guide.
Perhaps you are a game developer coming from a different platform, or you have previously developed a game on an earlier version of DirectX on Windows. You want to explore whether developing your game for Windows 10 is an attractive proposition for you. Here are some reasons to make that investment:
- Reuse your code and leverage your game development experience: One big advantage of DirectX/C++ development is that you can reuse significant amounts of your Windows Desktop game code. Use this porting guidance to leverage your existing code and game idea:
- Great development tools: Great games are made with great tools. Visual Studio provides a sophisticated environment for game development, debugging and profiling that eases your entry into game development, such as the Graphics Diagnostics tools.
- New horizons for your game: Windows 10 has changed the PC landscape with innovative form factors, new chip architectures, and exciting commerce models that present new opportunities.
- Rich entertainment experiences: Windows 10 is designed and engineered specifically for the enjoyment of entertainment experiences. The User Experience (UX) guidelines promote full screen imagery, as well as fast and fluid interactions with no borders. It is more convenient than ever to support touch, pen (ink) and mouse with the same code so you don’t have to design special mechanics for different form factors.
- Broad range of devices: To enable the highest possible performance, C++ with DirectX is the language of choice for Windows apps. Since performance is linked to device efficiency, C++ provides a route to the lowest possible power consumption rate, thereby enabling your game to run on the broadest range of devices.
- The Future of Gaming Across the Microsoft Ecosystem – Phil Spencer
- Developing Games for Windows 10 – Chris Tector, Don Xbox
- Advanced DirectX 12 Graphics and Performance – Max McMullen
- Gaming Consumer Experience on Windows 10 – Bill Schiefelbein
- New Opportunities for Independent Developers – Chris Charla
- Developing with Xbox Live for Windows 10 – Vijay Gajjala, Brian Tyler
- Xbox Live Multiplayer: Introducing services for cross-platform matchmaking and gameplay – Ferdinand Schober
- Fable Legends: Cross-device Gameplay with Xbox Live – Raymond Arifianto, Julian Davis
- Best Practices for Leveraging Cloud-Based User Stats and Achievements in Xbox Live – Cierra McDonald
- Solve the Tough Graphics Problems with Your Game Using DirectX Tools – Rudolph Balaz, Rong Lu, Jason Strayer
- Better Power, Better Performance: Your Game on DirectX 12 – Bennett Sorbo
- Sustained Gaming Performance in multi-core mobile devices – Julian Calinov
- Designing Games for a Windows Core World – Todd Williams, Shai Hinitz
- PC Games for Windows 10 – Chuck Walbourn
- Developing a Second Screen Experience with Xbox SmartGlass – Rosa Thomas
- Secrets of Success for Publishing Games in the Windows Store – Shai Hinitz
- Core Technologies for Windows 8 Games – Chas Boyd
- Developing a Windows Store Game with DirectX and C++ - Phillip Napieralski
- Crossing Microsoft Screens: Building Cross Platform Gameplay in Skulls of the Shogun –Borut Pfeifer
- Building Connected Game Experiences On Windows Phone – Tim Laverty
- Building DirectX Games for Windows and Windows Phone - Joao Raza
- Expand Your Opportunities to Windows 8 and Windows Phone 8 with Cross Platform Engines and Libraries – JC Cimetiere & Tim Closs
- Using In-Application Purchase for Windows Phone Games – Joe Bourne
- Basic Game Building for Windows Phone – Mark Paley
- What's New in Direct3D 11.2
- Innovations in High Performance 2D Graphics with DirectX
- DirectX Graphics Debugging Tools
- Windows Phone Game Development Basics
- Cutting Edge Games on Windows Tablets
- Accelerating Windows Store Game Development with Middleware
- Bringing Desktop PC Games to the Windows Store
- From Android or iOS: Bringing Your OpenGL ES Game to the Windows Store
- Unlocking the Power of DirectX in Apps That Use XAML
- Massive Virtual Textures for Games: Direct3D Tiled Resources (advanced)
- Building Windows Second Screen Experiences Using Xbox SmartGlass
- Tales from the Trenches: Developing "The Harvest" and "Gunpowder" with Unity
- Bringing Halo: Spartan Assault to Windows Tablets and Mobile Devices