Sponsored By

DircetX 11.1 Game Programming book

Introduction to the DirectX 11.1 Game Programming book by Pooya Eimandar.

Game Developer, Staff

September 30, 2013

20 Min Read
Game Developer logo in a gray background | Game Developer

About the book

The book "DirectX 11.1 Game Programming" brings unprecedented power and flexibility to programmers who want to excel in graphical programs. DirectX 11.1 Game Programming is an introduction to creating interactive computer graphics and games, using Direct3D 11.1. You would be guided through the new features of Direct3D along with XAML to build an extensible multithreaded framework for creating 3D applications and games on the Windows 8 metro style platform.

 

Who is this book for?

This book is for:

  • Those who would like to become a game programmer and who wish to start their game development journey

  • Those who wish to be a game developer to create and sell their game  on the Windows Store

  • A DirectX developer who needs more performance from DirectX 11.1

  • A C/C++/C# developer who needs to switch to the new platform  of Microsoft

  • Those who would like to use XAML and C++/CX for their  graphical applications

 

Book in detail

DirectX is designed to create eye-popping 3-D visuals and immersive sound effects found in many of today's PC games. DirectX 11.1 includes numerous improvements from its previous version. It's designed to be more efficient, leverage the power of today's multi-core processors, and provide support for sophisticated shading and texturing techniques such as tessellation.

DirectX 11.1 Game Programming brings unprecedented power and flexibility to programmers who want to excel in graphical programs. DirectX 11.1 Game Programming is an introduction to creating interactive computer graphics and games, using Direct3D 11.1. You would be guided through the new features of Direct3D along with XAML to build an extensible multithreaded framework for creating 3D applications and games on the Windows 8 metro style platform.

DirectX 11.1 Game Programming explores the techniques to set up a 3D multithreaded framework for metro style graphics programs. You would be guided through the process of extending your framework to utilize the advantages of Direct3D 11.1.

We would then explore Visual Studio Model editor for loading and editing your assets and learn how to render them with the Direct3D pipeline. We will also explore the supporting inputs such as keyboards, pointers, Xbox controllers, and how to render the complete 3D scene using camera, sound, billboard, tessellation, post processors, and parallel libraries, along with supporting XAML.

You would also learn the different techniques of debugging the program and would be well equipped with everything you need to start programming 3D applications and games with DirectX 11.1 on Windows 8 platforms.

 

Chapters Overview

 

1. Say Hello to DirectX 11.1

This chapter is about DirectX 11.1. Before learning about programming with the new component extension (C++/CX) of Microsoft and DirectX 11.1, it seems necessary to take a step backward and commence with the new features of DirectX 11.1 on a Metro Style application to discover why we must move to the newer version.

This chapter covers the following:

  • The need for DirectX 11.1

  • The prerequisites

  • Introduction to C++ component extensions (C++/CX)

  • Metro Style apps

  • Setting up your first project

  • Building your first Metro app

  • Working with game time

  • Initializing the device

2. Getting Started with HLSL

This chapter is about HLSL, the GPU programming language for DirectX, which is a high-level shader language that is used to generate shaders. This chapter covers the following topics:

  • An introduction to HLSL

  • New features of HLSL

  • Compiling and linking to shaders

  • Buffers in Direct3D

  • Rendering primitives

  • Direct2D 1.1

3. Rendering a 3D Scene

This may be the most favorable chapter in this book. We are going to lay out the process of developing our framework in order to render 3D scenes. We're going to take you on a tour of some of the advanced concepts of the 3D programming, specifically focusing on system usages, loading and rendering meshes, handling inputs, types of cameras, and finally integrating XAML and Direct3D in order to have an editor for the game.

This chapter covers the following:

  • Displaying the performance data

  • Asynchronous resource loading

  • Getting started with the Model Editor

  • Loading a model from the .cmo format

  • Rendering a model

  • The input devices we'll need

  • Keyboard

  • Pointer

  • Xbox 360 controllers

  • Turning on the camera

  • Base camera

  • First person camera

  • Third person camera

  • Composing XAML and Direct3D

4. Tessellation

You've already probably heard a lot about tessellation with the new features that were available on DirectX 11. In this chapter, we are going to kill two birds with one stone. First, we are going to look at some examples on which to perform tessellation step- by-step and we will take a look at the significant changes made to 3D applications by tessellation. Then, we will outline how to use the Graphics Debugging feature in Visual Studio 2012.

This chapter covers the following:

  • What is hardware tessellation?

  • Basic tessellation

  • Displacement mapping with tessellation

  • DirectX graphics diagnostics

5. Multithreading

Today, most computers possess multiple cores within their processors. The CPU and GPU core counts will continue to increase, and in a few years, many applications and tools will be developed to utilize these hardware improvements efficiently. In this chapter, we are going to demonstrate how to improve the framework for a parallel game engine using the new technology of Microsoft, which is called C++ Amp. We are also going to integrate our engine to use Compute Shaders and then compare their performances.

This chapter covers the following:

  • C++ AMP

  • Compute Shaders

  • Compute Shader versus C++ AMP

  • Post-processing

 

How to buy the book?

You can buy the DirectX 11.1 Game Programming from:

 

 

About the author

"Pooya Eimandar" was born on January 07, 1986. He graduated with a degree in Computer Science and Hardware Engineering from Shomal University and has been programming mainly in DirectX and OpenGL since 2002. His main research interests are GPU-programming, image processing, parallel computing, and game developing. Since 2010, he has been leading a game engine team for a company Bazipardaz, working on their latest titles for Xbox 360 and PC. You can find more information about this at http://persianengine.codeplex.com/.

About the reviewers

  • Doron Feinstein is a Senior Graphics Programmer at Rockstar Games and is the author of the book HLSL Development Cookbook published by Packt Publishing. After working with simulations for a number of years, he decided to switch to an exciting career in the games industry. Max Payne 3 and All Points Bulletin (APB) are among some of the titles Doron has worked on commercially.

 

  • Stephan Hodes has been working as a Game Engine programmer for almost 15 years while GPUs made the transition from fixed function pipeline to programmable shader hardware. During this time, he worked on a number of games released for PC as well as for Xbox 360 and PS3. Since he joined AMD as a Developer Relations Engineer in 2011, he has worked with a number of European developers on optimizing their technology to take full advantage of the processing power that the latest GPU hardware provides. He is currently living with his wife and son in Berlin, Germany.

 

  • Vinjn Zhang is an enthusiastic Software Engineer. His main interests in programming include game development, graphics shader writing, human- computer interaction, and computer vision. He has translated two technical books into Chinese, one for the processing language and one for OpenCV. Vinjn Zhang has worked for several game production companies including Ubisoft and 2K Games. He is currently working as a GPU Architect for NVIDIA, where he gets the chance to see the secrets of GPU. Besides his daily work, he is an active github user. He tries to make every piece of code open source. His website is also an open source repository, Visit his website.

Provide feedback

If you have found errata in the book or just want to send book author a message, please kindly send an email to Pooya{dot}Eimandar{at}Live{dot}com.

Your feedback is valuable to me, so never hesitate to contact me. You can find me at http://www.Pooya-Eimandar.com.

http://directx11-1-gameprogramming.azurewebsites.net

Read more about:

Blogs
Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like